for in だったりForEachだったり、なんか使い勝手の違いか?と思いきや、場合によって使えたり使えなかったりなんでよ?って思うわけですが。viewで使える使えないの違いだったり。念の為メモ

ForEachはSwiftUI専用でViewをループさせる目的で利用

これを知らなかったんですね。他のfor inをbodyに書いてエラーが出てなんでやねん!って思ってました。

これは、ライフサイクルも管理されていて、配列の中身が変わった場合も再レンダリングできる
view専用のループらしいです。

なのでこれだけ特別です。唯一Viewで使えるものです。

for .. in

要素を取り出し、変数に格納してぐーるぐるループするやつ

for child in children{

print(child)

}

while ..

条件を満たした間はずっとぐるぐるループ。

永久ループに要注意

var count = 0

while count < 5{
print(count)

count+=1

}

//5になったらとまる

repeat...while

1回は実行されるループ。

条件判定が最後にあるので、1回は実行される

var count = 0

repeat {
    print("実行されました: \(count)")
    count += 1
} while count < 3

配列の高階関数

配列にくっつけて使えるループ。

ループして、何をするか?によって選択が異なる

forEach

配列をループでクロージャの中で実行できる。

ちな、途中抜けはできない(breakとか)

let numbers = [1, 2, 3, 4, 5]

numbers.forEach { number in
    print(number)
}

map

クロージャの中で処理し、新しい配列を生成する

let numbers = [1, 2, 3, 4, 5]

// 各要素を2倍にする
let doubledNumbers = numbers.map { $0 * 2 }
print(doubledNumbers)


//出力結果
//[2, 4, 6, 8, 10]

filter

条件にマッチする配列を返すことで、新しい配列を生成する。

検索のような使い方になるが、ループである以上、fullscanであることに注意

let numbers = [1, 2, 3, 4, 5]

// 偶数の要素だけを抽出する
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers)


//出力結果
//[2, 4]

コメント