Swift 如何理解;通过扩展添加新的实例方法“;来自苹果公司';旅游指南?

Swift 如何理解;通过扩展添加新的实例方法“;来自苹果公司';旅游指南?,swift,Swift,在苹果的文档中,当我们要扩展type:Int时,我们可以编写如下代码: 3.repetitions(task: printHello) 以下是我的问题: 为什么打印(“你好!”)可以工作 我的意思是,在第2行:函数重复(task:()->Void){,计算机如何知道参数task与task()相同 如果我编写这样的代码,为什么不起作用: 3.repetitions(task: printHello) 以下是代码,谢谢: import Foundation func printHello(

在苹果的文档中,当我们要扩展type:Int时,我们可以编写如下代码:

3.repetitions(task: printHello)

以下是我的问题:

为什么打印(“你好!”)可以工作

我的意思是,在第2行:函数重复(task:()->Void){,计算机如何知道参数tasktask()相同

如果我编写这样的代码,为什么不起作用:

3.repetitions(task: printHello)

以下是代码,谢谢:

import Foundation

func printHello(){
    print("Hello!")
}

extension Int {
func repetitions(task: () -> Void) {
        for _ in 0..<self {
            task()
        }
    }
}



3.repetitions (printHello){

}
<代码>导入基础 func printHello(){ 打印(“你好!”) } 扩展整数{ 函数重复(任务:()->无效){
对于0..中的uuu,如果要传递
printHello
,请按如下方式执行:

3.repetitions(task: printHello)
这种方式使用:

这是一个语法糖:

3.repetitions(task: {
    print("Hello!")
})

这是尾随闭包语法的一个实例,它是为使闭包更易于使用而发明的许多语法糖之一。