Swift Playgrounds

コードを学ぼう2【エキスパートを初期化する】解答例と解説

エキスパートを初期化する

解答例

let expert = Expert()

func move3() {
  expert.moveForward()
  expert.moveForward()
  expert.moveForward()
}

func solveSide() {
  move3()
  if expert.isOnGem {
    expert.collectGem()
  } else {
    expert.turnLockUp()
  }
}

func returnToCenter() {
  expert.turnLeft()
  expert.turnLeft()
  move3()
  expert.turnRight()
}

for i in 1 ... 3 {
  solveSide()
  returnToCenter()
}

solveSide()

解説

新しいキャラクター、『エキスパート』の登場です!
この人(ひと?笑)は、今までのキャラができたことに加えて、『turnLockUp()』メソッドが使えることが特徴です。
この能力は、エキスパートさんだけの特権です。

さて、『』と『初期化』について、もう一度整理してみましょう。

型とは、あるデータの属性(特徴)とメソッド(挙動)をまとめて名前をつけたもの
つまり、型には属性とメソッドがある

初期化とは、型のインスタンス(実体)を新しく作ること。
型の属性の初期値を設定することができ、インスタンスは初期化中に作成される

『型』の説明であったように、プログラミングでは『』は設計図
インスタンス』は設計図を使って建てた家のようなものです。

今回は、letを使ってエキスパートを宣言し、Expert型を割り当てて初期化します。
その後は、ドット表記を使ってメソッドを呼び出すことができます。
最初に鍵まで行って、turnLockUp()して、地面を上げないと
宝石のところまで行くことができません。
エキスパートを動かすには、ドット表記でメソッドを指定します。
expertというインスタンスに、
moveForward()というメソッドを呼び出すように指示するということになります。

要点まとめ

・初期化とは、特定の型のインスタンスを作ること