'(Int) - > Int'不能转换为'Int'

时间:2015-02-27 00:28:30

标签: swift swift-playground

您好我将Swift编程语言书中的一些代码放入游乐场,我收到以下错误消息。 ('(Int) -> Int' is not convertible to 'Int') 到底是怎么回事? 谢谢你的帮助

func stepForward (input: Int) -> Int {
     return input + 1
}
func stepBackward (input: Int) -> Int {
     return input - 1
}
func chooseStepFunction (backwards: Bool) -> Int {
     return backwards ? stepBackward : stepForward
}

2 个答案:

答案 0 :(得分:2)

chooseStepFunction期望返回 Int 时,您将返回一个函数。您需要将返回类型从Int更改为(Int) -> Int

func chooseStepFunction (backwards: Bool) -> (Int) -> Int {
     return backwards ? stepBackward : stepForward
}

答案 1 :(得分:0)

当你尝试返回一个函数时,它应该是

func chooseStepFunction(backwards: Bool) -> (Int) -> Int {
    return backwards ? stepBackward : stepForward
}

chooseStepFunction返回一个接受int并返回int的函数。