別の場所で「where」キーワードを使用してからスイッチを使用する可能性もありますか?たとえば、for inループで使用できますか?
私はブール値を持つ配列を持っています、すべて値で、私はこのようなことをすることができます:
var boolArray: [Bool] = []
//(...) set values and do stuff
for value where value == true in boolArray {
doSomething()
}
これはifを使用するよりもはるかに優れているので、forループと組み合わせてwhereを使用する可能性があるかどうか疑問に思っています。あなたの時間のタイ。
Swift 2、新しいwhere
構文が追加されました:
for value in boolArray where value == true {
...
}
Pre 2.0では、1つの解決策は.filter
反復する前の配列に対して:
for value in boolArray.filter({ $0 == true }) {
doSomething()
}
通常のfor-loop
は、リストに存在するすべての要素を繰り返します。ただし、データが特定の条件を満たす場合にのみ反復したい場合は、for -loop
でwhere
句を使用できます。ループ内のif
条件の単なる置換です。
例えば:
let numbers = [1,2,3,4,5,6,7]
for data in numbers {
if (data % 2 == 0) {
print(data)
}
}
次のように簡単な方法で書き直すことができます。
for data in numbers where data % 2 == 0 {
print(data)
}