我定义了以下枚举
enum Languages :String {
case Spanish = "Spanish"
case English = "English"
case German = "German"
}
我有以下类,其中包含一个属性和一个将该属性用作块的函数:
class Person {
var language:Languages = Languages.Spanish
var rosettaStoneCourse:Languages -> Void = {
(lang:Languages) -> Void in
self.language = lang
}
func learnLanguage(lang:Languages, course:(Languages) -> Void {
course(lang)
}
}
您可能更容易将所有内容复制并粘贴到自己的Playground文件中以查看我的错误,但如果您不想这样做,我会在此列出它们。我收到以下错误
在self.language = lang
中我正在使用“未解析的标识符self
在learnLanguage
函数中,它建议在单词Void
之后加上逗号
在learnLanguage
的结束大括号中,它在参数中说Expected '}'
。
最奇怪的是,如果我将惰性修饰符添加到rosettaStoneCourse
,我列出的第一个错误就会消失!
对此有任何意义,或者这只是因为Playground
处于测试阶段并且我们应该期待奇怪的事情吗?