Swift2 Swift:如何使用可选的for in-loop?
使用可选选项的in-loop的正确方法是什么 现在,我总是在循环之前执行可选绑定。还有其他的成语吗Swift2 Swift:如何使用可选的for in-loop?,swift2,optional,for-in-loop,Swift2,Optional,For In Loop,使用可选选项的in-loop的正确方法是什么 现在,我总是在循环之前执行可选绑定。还有其他的成语吗 let optionalInt:[Int]? = [1, 2, 3] if let optionalInt = optionalInt { for i in optionalInt { print(i) } } 你可以写这个: let optionalInt:[Int]? = [1, 2, 3] for i in optionalInt ?? [Int]() { pri
let optionalInt:[Int]? = [1, 2, 3]
if let optionalInt = optionalInt {
for i in optionalInt {
print(i)
}
}
你可以写这个:
let optionalInt:[Int]? = [1, 2, 3]
for i in optionalInt ?? [Int]() {
print(i)
}
但我建议您避免使用可选值,例如,您可以这样编写:
var values = [Int]()
// now you may set or may not set
for i in values {
print(i)
}
或者,如果要使用可选值且此代码在函数中调用,则可以使用guard
:
guard let values = optionalInt else { return }
for i in values {
print(i)
}
我认为没有合适的方法。有很多不同的方法,这取决于你喜欢什么,Swift有很多功能,可以根据你的选择让你的程序看起来非常漂亮 以下是我可以想到的一些方法:
let optionalInt:[Int]? = [1, 2, 3]
for i in optionalInt! { print(i) }
for i in optionalInt ?? [] { print(i) }
for i in optionalInt as [Int]! { print(i) }
如果要将一组操作应用于数组的所有元素,则可以将for循环替换为
forEach{}
闭包,并使用:
我迟到了两年,但我认为这是最好的办法
func maybe<T>(risk: T?, backup: T) -> T {
return risk.maybe(backup)
}
现在呢
for i in optionalInt.maybe([]) {
print(i)
}
最干净的解决方案有时是最基本的
if let a = myOptionalArray {
for i in a {
}
}
所以我建议,保持你的方法
上面的方法只插入一个空选项,或者forEach创建一个块只是因为
如果let a=optional{
还不够性感不,这不是唯一的答案。但是,这是最短的答案。请注意,不能在forEach上中断。请注意,如果循环是对象初始化逻辑的一部分,则无法执行forEach,因为在初始化self之前,无法通过闭包捕获self。这还增加了不必要的内存和性能占用Ry和性能占用是相同的,如果不是相似的。如果您想减少内存占用,考虑使用AutoReleSoCoin for for循环:LOL?’for opsialIn?[]][{打印(i)}中的i?“哈!有时我只是想,用canonwau杀死一只蚊子,objective-c nil行为有什么问题?我们又回到了如何循环简单数组,而不是编写样板……啊,我忘了,swift设计师只需要与众不同哈,很多人在意识到这是一个笑话之前挠头了吗?”?
for i in optionalInt.maybe([]) {
print(i)
}
if let a = myOptionalArray {
for i in a {
}
}