Swift 初学者需要详细说明语法 - 传递和返回函数
Swift beginner needs elaboration on syntax - Passing and Returning Functions
我正在尝试 Swift 和语法与我习惯的不同的语言。学习曲线。我想知道是否有人可以帮我解释一下。
我明白以下内容。我知道方法 returns 元组中的多个值。
func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}
虽然我不明白这一点。 makeIncrementer return 是 Int 吗?它是 returning 一个 returned Int 吗?将什么传递到 addOne 方法中以及如何传递?如果 addOne 只是 return 单个值,那么 makeIncrementer 如何能够 return 两个值?此外,当函数不取值时,如何使 var increment(指定为 makeIncrementer 方法)取值?我也不确定在没有传递函数时如何将其称为传递和 returning 函数(它不是嵌套的吗?)
// 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
这个函数接受一个整数,returns另一个。 Swift 使用语法 (Int -> Int)
来表示。这与直接返回一个整数不同,你可能还会看到以函数为参数的函数实例。这可能如下所示:
func doSomething(completion: ()->())
我正在尝试 Swift 和语法与我习惯的不同的语言。学习曲线。我想知道是否有人可以帮我解释一下。
我明白以下内容。我知道方法 returns 元组中的多个值。
func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}
虽然我不明白这一点。 makeIncrementer return 是 Int 吗?它是 returning 一个 returned Int 吗?将什么传递到 addOne 方法中以及如何传递?如果 addOne 只是 return 单个值,那么 makeIncrementer 如何能够 return 两个值?此外,当函数不取值时,如何使 var increment(指定为 makeIncrementer 方法)取值?我也不确定在没有传递函数时如何将其称为传递和 returning 函数(它不是嵌套的吗?)
// 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
这个函数接受一个整数,returns另一个。 Swift 使用语法 (Int -> Int)
来表示。这与直接返回一个整数不同,你可能还会看到以函数为参数的函数实例。这可能如下所示:
func doSomething(completion: ()->())