我正在尝试使用 Swift 和语法与我习惯的不同的语言。学习曲线。我想知道是否有人可以帮我解释一下。
我理解以下内容。我知道该方法在一个元组中返回多个值。
func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}
虽然我不明白这一点。 makeIncrementer 返回一个 Int 吗?它返回一个返回的 Int 吗?将什么传递到 addOne 方法以及如何传递?如果 addOne 只返回一个值,那么 makeIncrementer 如何返回两个值?此外,当函数不取值时,如何使 var increment(指定为 makeIncrementer 方法)取值?我也不确定在没有传递函数时如何将其称为传递和返回函数(它不是嵌套的吗?)
// Passing and returning functions
func makeIncrementer() -> (Int -> Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
return addOne
}
var increment = makeIncrementer()
increment(7)
如果这个问题已经有人回答了,请原谅我,我没找到!我是 C# 和 Java 的初学者,所以这种语法对我来说完全陌生。
提前致谢!
最佳答案
makeIncrementer
返回一个函数值。所以返回的是一个接受单个 Integer 参数的函数。
func addOne(number: Int) -> Int
这个函数接受一个整数并返回另一个。 Swift 使用语法 (Int -> Int)
来表示这一点。这与直接返回一个整数不同,你可能还会看到以函数为参数的函数实例。这可能类似于以下内容:
func doSomething(completion: ()->())
关于Swift 初学者需要详细说明语法 - 传递和返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205469/