gpt4 book ai didi

swift - 在 Swift 中将列表从一个函数传递到另一个函数

转载 作者:IT王子 更新时间:2023-10-29 05:17:19 24 4
gpt4 key购买 nike

我不太明白为什么我不能将 Int[] 从一个函数传递到另一个函数:

func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}

func average(numbers:Int...) -> Double {
var sum = sumOf(numbers)

return Double(sum) / Double(numbers.count)
}

这给了我以下错误:

Playground execution failed: error: <REPL>:138:19: error: could not find an overload for '__conversion' that accepts the supplied arguments

var sum = sumOf(numbers)
^~~~~~~~~~~~~~

感谢您的帮助!

最佳答案

sumOf 中的numbers: Int... 参数称为可变参数。这意味着您可以传入该类型参数的可变数量,并且您传入的所有内容都会转换为该类型的数组,供您在函数中使用。

因此,average 中的 numbers 参数是一个数组,而不是像 sumOf 那样的一组参数。

你可能想要重载 sumOf 来接受其中任何一个,这样你的平均函数就可以调用适当的版本:

func sumOf(numbers: [Int]) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
func sumOf(numbers: Int...) -> Int {
return sumOf(numbers)
}

关于swift - 在 Swift 中将列表从一个函数传递到另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008547/

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