『Kotlinプログラミング』(Josh SKeen他著、吉川訳、翔泳社刊)でKotlinを勉強しています。
Kotlinを勉強していると、度々「スコープ」言う言葉が出て来ます。これはどのような意味でしょうか?
例えば、『Kotlinプログラミング』の241ページの「オブジェクト式」の記述で、以下のとおり、「名前付きシングルトン(オブジェクト宣言したクラス)と比べて、スコープが狭い」とありますが、このスコープとはどのような意味でしょうか?
「scope」を辞書で調べると、範囲、視野と言う意味だと思いますが、実際、何の範囲が狭いと言っているのでしょうか?(例えば、下の文章の中で定義しているabandonedTownSquare変数ならば、これを定義している何かしらの関数(fun xxx(){・・・})の中でしか利用できないからでしょうか?)
Kotlin
1fun xxx(){ 2 ・・・ 3 val abandonedTownSquare = object: TownSquare(){ 4 override fun load() = "You anticipate ....." 5}
ご指導のほど、よろしくお願いします。
なお、比較している名前付きシングルトンとは、オブジェクト宣言したクラスで、例としては次のコードの通りです。
Kotlin
1object Game { 2 private val player = Player("Madrigal", 89, true, false) 3 private var currentRoom = Townsquare() //Room("Foyer") 4 5 init { 6 println("Welcom, adventurer") 7 player.castFireball() 8 } 9 10 fun play(){ 11 while(true){ 12 println(currentRoom.description()) 13 println(currentRoom.load()) 14 15 // PlayerStatus 16 printPlayerStatus(player) 17 18 print("> Enter your command: ") 19 println("last command: ${readLine()}") 20 println() 21 } 22 } 23 24 private fun printPlayerStatus(player: Player) { 25 println("(Aura: ${player.auraColor()} " + 26 "(Blessed: ${if (player.isBlessed) "Yes" else "No"})") 27 println(player.name + " " + player.formatHealthStatus()) 28 } 29
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。