Swift初学者需要详细阐述语法 - 传递函数和返回函数

时间:2015-10-19 01:56:38

标签: swift function parameters

我冒险进入Swift和语言不同的语言,我以前用过。学习曲线。我想知道是否有人可以帮我解释一下。

我理解以下内容。我知道该方法在元组中返回多个值。

func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}
但是,我不明白这一点。 makeIncrementer 返回Int吗?它返回一个返回的Int吗?什么被传递到 addOne 方法以及如何?如果addOne只返回一个值,那么makeIncrementer如何返回两个值?此外,当函数没有时,如何将var 增量(指定为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的初学者,所以这种语法对我来说完全陌生。

提前谢谢!

1 个答案:

答案 0 :(得分:2)

makeIncrementer返回一个函数值。所以返回的是一个带有单个Integer参数的函数。

func addOne(number: Int) -> Int

此函数采用整数并返回另一个整数。 Swift使用语法(Int -> Int)来表示这一点。这与直接返回整数不同,您还可以看到将函数作为参数的函数实例。这可能如下所示:

func doSomething(completion: ()->())