gpt4 book ai didi

swift - 如何从苹果指南中理解 "add new instance methods by extentions"?

转载 作者:可可西里 更新时间:2023-11-01 00:57:48 25 4
gpt4 key购买 nike

在apple的文档中,当我们要扩展type:Int时,我们可以这样写代码:

enter image description here

这是我的问题:

为什么 print("Hello!") 可以工作?

我的意思是,在第 2 行:func repetitions(task: () -> Void) {,计算机如何知道参数 task任务()

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

enter image description here

这是代码,谢谢:

import Foundation

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

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



3.repetitions (printHello){

}

最佳答案

如果你想传递 printHello 那么你可以这样做:

3.repetitions(task: printHello)

这种方式使用trailing closure syntax :

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

这是语法糖:

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

关于swift - 如何从苹果指南中理解 "add new instance methods by extentions"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com