我正在使用关闭扩展作为参数的快速学习书。
在书中,它告诉我
extensionInt {
func repeat(work: () -> ()) {
for _ in 0..< self {
work()
}
}
}
但对于“func repeat ..”的行,xcode告诉我“函数声明中的预期标识符”
并且对于“for _ in ...”这一行,xcode告诉我“Braced block of statement是一个未使用的闭包”和“Expected'{'来启动for-each循环体。”
有没有人可以告诉我为什么会发生这种情况,我该怎么办?
答案 0 :(得分:1)
发布的代码存在许多问题:
extensionInt
应该是extension Int
,虽然我怀疑这是你发布的错误repeat
是一个Swift关键字,你需要重命名你的函数(例如repeatWork)Swift半开放式操作员要求两侧空置空间,或两侧无空间。这两个都是有效的:
0 ..< self
0..<self
最后,您可以像这样调用此函数:
2.repeatWork({
print("Hello")
})
或者这个:
2.repeatWork {
print("Hola")
}
答案 1 :(得分:-1)
请在下面的代码。主要的是,repeat是一个不能用作函数名的关键字。
extension Int {
func repeat1(work: () -> ()) {
for _ in 0..<self {
work()
}
}
}