我定义了以下枚举
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
它处于测试阶段,我们应该期待一些奇怪的事情?