gpt4 book ai didi

swift - 类型 '()' 不符合协议(protocol) 'IntegerLiteralConvertible'

转载 作者:行者123 更新时间:2023-11-28 11:21:07 25 4
gpt4 key购买 nike

func makeIncrementer() -> (Int -> Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
return addOne
}

以上是Swift中Function作为一级类型的简单示例代码现在,当我按以下方式调用函数时:

var increment = makeIncrementer()
increment(7)

完美给出答案

但出于好奇,我尝试了直接的方法,即

makeIncrementer(7)  // error

然后报错

为什么会这样???附言我是 Swift 初学者

最佳答案

调用 makeIncrementer() 返回函数,因此要调用它,您需要在第二组括号中传递参数:

makeIncrementer()(7)

给出错误消息是因为 Swift 将 makeIncrementer(7) 解释为 7 被传递给 makeIncrementer,它不接受任何参数。希望 Swift 错误消息在未来变得更加友好。虽然在技术上是正确的,但给出的错误消息会导致很多困惑。

关于swift - 类型 '()' 不符合协议(protocol) 'IntegerLiteralConvertible',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28010246/

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