2

次の列挙を定義しました

enum Languages :String {
case Spanish = "Spanish"
case English = "English"
case German = "German"

}

プロパティと、そのプロパティをブロックとして使用する func を持つ次のクラスがあります。

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 '}'ているパラメータの閉じ中括弧で。

最も奇妙なことは、 lazy 修飾子を に追加すると、rosettaStoneCourseリストした最初のエラーが消えることです!

これには何らかの意味がありますか、それともPlaygroundベータ版であり、奇妙なことが予想されるからでしょうか?

4

0 に答える 0