gpt4 book ai didi

swift - 无法快速执行除法功能

转载 作者:行者123 更新时间:2023-11-28 15:38:53 24 4
gpt4 key购买 nike

我正在根据 swift 教程进行平均函数分配。当我写这样的代码时:

func AVG(numbers: Int...) -> Double {
var i=0, sum=0; var avg: Double
for number in numbers {
i+=1
sum+=number
avg = sum/i
}
return avg
}

let Average = AVG(numbers: 3,4,5)
print (Average)

它显示一条错误消息,显示二元运算符“/”不能应用于两个 int 操作数。

当我执行像

这样的简单除法时
let x = 5
let y = 2
let quo = x/y

有效。

我在函数中做错了什么?

最佳答案

您将 avg 声明为 Double 类型。

numbers 的类型是 Inti=0 也是 Int

当您执行 sum/i 时,它是 Int/Int 并且您尝试将其分配给 Double。Swift 不会自动进行转换——它会强制您手动转换数据类型。您可以通过简单地将这两个变量转换为 Double 来修复它。

请记住,您需要在进行除法之前转换 Int - 否则结果将切断提醒,因为 Int 不能拥有它们。感谢@martin

另外一个问题是,如果您的数字数组为空,您可能会尝试返回未初始化的变量 avg

下面的工作代码:

func AVG(numbers: Int...) -> Double {
var i=0, sum=0; var avg: Double = 0
for number in numbers {
i+=1
sum+=number
avg = Double(sum)/Double(i)
}
return avg
}

let Average = AVG(numbers: 3,4,5)
print (Average)

关于swift - 无法快速执行除法功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43974157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com