Swift Playgrounds

コードを学ぼう2【配列に追加する】解答例と解説

配列に追加する

解答例

let allCoordinates = world.allPossibleCoordinates
var blockSet: [Coordinate] = []

for coordinate in allCoordinates {
  if coordinate.column > 5 || coordinate.row < 4 {
    blockSet.append(coordinate)
  }
}

for coordinate in blockSet {
  for i in 1 ... 6 {
    world.place(Block(), at: coordinate)
  }
}

解説

このステージすべての座標を、allCoordinates配列で宣言します。
それから、空の配列のCoordinate型の変数名は、blockSetとします。
空の配列を宣言する時は、配列に入れる項目の型を指定しなければなりません。

for-inループで『allCoordinates』配列のcoordinateを調べ、
条件をblockSetにappend(追加)していきます。
coordinate.columncoordinate.rowのように
ドット表記にすることにより、
coordinateのcolumn(座標の列)、coordinateのrow(座標の行)についての値を
示すことができます。
これで、比較演算子(< 、 >など)を使うと、条件に合った座標をifで調べることができます。

Arrayのメソッドで出てきましたが、
insert()は要素と整数を記入して、特定のインデックスの位置に項目を挿入しましたが、
append()は配列の最後に項目を追加することになります。

さて、こうしてifの条件に合った座標をblockSet配列に追加したら、
またfor-inループを使ってその座標の場所へブロックを積み上げます。
配列を反復処理するんでしたね。

要点まとめ

・値を指定せずに配列を宣言する際は、型を指定する