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

标签 swift function parameters

我正在尝试使用 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 的初学者,所以这种语法对我来说完全陌生。

提前致谢!

最佳答案

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

func addOne(number: Int) -> Int

这个函数接受一个整数并返回另一个。 Swift 使用语法 (Int -> Int) 来表示这一点。这与直接返回一个整数不同,你可能还会看到以函数为参数的函数实例。这可能类似于以下内容:

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

关于Swift 初学者需要详细说明语法 - 传递和返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205469/

相关文章:

swift - 如何在全局范围内保值?

php - 当 mySQL 字段等于某个值时发送电子邮件警报

JavaScript:如何使用默认功能打开新窗口?

.net - 为什么我的 boolean 值 0 返回 true?

parameters - 数据源的 BIRT 部分作为参数

swift - 用另一个字符串替换一个字符串

ios - ViewController 在等待分派(dispatch)信号量时作为弹出窗口

ios - 添加 Google map 作为 subview 无限调用 viewDidLoad()

javascript - 函数是否只在内存中存储一​​次?

linux - Scheme 中的二次公式