【问题标题】:Swift beginner needs elaboration on syntax - Passing and Returning FunctionsSwift 初学者需要详细说明语法 - 传递和返回函数
【发布时间】:2016-01-17 06:31:40
【问题描述】:

我正在尝试使用 Swift 和我习惯的语法不同的语言。学习曲线。我想知道是否有人可以帮助向我解释这一点。

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


func getGasPrices() -> (Double, Double, Double) {
return (3.59, 3.69, 3.79)
}

虽然我不明白这一点。 ma​​keIncrementer 是否返回 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 的初学者,所以这种语法对我来说完全陌生。

提前谢谢你!

【问题讨论】:

    标签: swift function parameters


    【解决方案1】:

    makeIncrementer正在返回一个函数值。所以返回的是一个接受单个 Integer 参数的函数。

    func addOne(number: Int) -> Int
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多