Swift2 Swift:如何使用可选的for 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

使用可选选项的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]() {
    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 {
        
    }
}