是否有可能在另一个地方使用'where'关键字然后转换?我可以在for循环中使用它吗?
我有一个bools数组,都有一个值,我可以做这样的事情:
var boolArray: [Bool] = []
//(...) set values and do stuff
for value where value == true in boolArray {
doSomething()
}
这比使用if要好得多,所以我想知道是否有可能在for循环中使用where。 Ty适合你的时间。
在Swift 2中,添加了新的where
语法:
for value in boolArray where value == true {
...
}
在Pre 2.0中,一个解决方案是在迭代之前调用数组上的.filter
:
for value in boolArray.filter({ $0 == true }) {
doSomething()
}
正常的for-loop
将迭代列表中的所有元素。但有时我们只想在数据满足某些条件时进行迭代,我们可以在where
中使用for -loop
子句。它只是循环中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)
}
是的,您可以在for循环中使用“where”子句。
let arr = [1,2,3,4,5]
for value in arr where value != 0 {
print(value)
}
考虑你的例子,
var boolArray: [Bool] = []
//(...) set values and do stuff
for value in boolArray where value == true {
doSomething()
}