gpt4 book ai didi

swift - 可变参数 - 编译器错误无法将类型 '[Int]' 的值转换为预期的参数类型 'Int'

转载 作者:搜寻专家 更新时间:2023-10-31 22:06:51 25 4
gpt4 key购买 nike

swift 新手。不确定为什么编译器会给出以下代码的错误。:

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

func multiplyNumbers(numbers: Int ...) -> Int {
var total : Int = numbers [0]
for (index,number) in numbers.enumerate() {
if index == 0 {
continue
}
total *= number
}
return total
}

func mathOperation(mathFunction: (Int ...) -> Int, numbers: Int ...) -> Int {
return mathFunction(numbers)
}

错误:

error: cannot convert value of type '[Int]' to expected argument type 'Int' return mathFunction(numbers)

最佳答案

Swift 的可变参数并不那么容易使用。我会将参数类型更改为数组。这是一个有效的修复:

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

func multiplyNumbers(numbers: [Int]) -> Int {
var total : Int = numbers [0]
for (index,number) in numbers.enumerate() {
if index == 0 {
continue
}
total *= number
}
return total
}

func mathOperation(mathFunction: [Int] -> Int, numbers: Int ...) -> Int {
return mathFunction(numbers)
}

print(mathOperation(multiplyNumbers,numbers: 3,24))

这将打印出 72

关于swift - 可变参数 - 编译器错误无法将类型 '[Int]' 的值转换为预期的参数类型 'Int',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35373083/

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