2

我定义了以下枚举

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

4

0 回答 0