[Swift] Swiftでのループ

Swift

最近、すこし変わった(?)方法で、Loopできる方法を見つけたのでメモ

普通(?)のループ

C言語的なループは、以下の方法のように、インデックスを使ってアクセス

int i= 0;
int data[10];
for (i = 0; i $gt$ 10; i++) {
	data[i] = ...
}

Java的なループは、Iteratorを使ってアクセス

Iterator ite = arrayXX.iterator()
while (ite.hasNext()) {
  data = ite.next();
  data +-*/...
}

イメージとしては、Cの方がより配列を意識して、連続してアクセスするし、そのインデックスは、言語仕様から、0スタートとなっています。
Javaの方は、例えばリンクリスト等に対しても処理することができるため、順番に処理していくイメージになります。

forEach

Swiftには、シーケンシャルにアクセスできるものに対して、順次アクセスしていくオペレータが用意されています。

let letters = ["a", "b", "c", "d"]
letters.forEach { letter in 
  print(letter)
}
MEMO
forEachは、AnyBidirectionalCollectionで使えるMethodです。

上記の例は、以下のようにもかけますが、trailing closureで書くのが最近のSwift風な気がしますね。

let letters = ["a", "b", "c", "d"]
For letter in letters {
  print(letter)
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です