gpt4 book ai didi

swift2 - 如何在函数之外使用 guard ?

转载 作者:行者123 更新时间:2023-12-04 15:09:45 26 4
gpt4 key购买 nike

是否可以使用 guard在函数之外?

下面抛出一个错误,需要使用 return 或 break ,但在这种情况下这是不可能的。

var var1 = String?()
guard let validVar = var1 else {
print("not nil")
}

最佳答案

不,这是不可能的。要使用类中其他变量的知识来实例化变量,您可以使用延迟初始化或 getter。

var testString : String?
lazy var testString2 : String = {
guard let t = self.testString else { return String()}
return t
}()

如果我错了,请随时纠正我:)

我认为guard是为了函数的健壮性而设计的,如果条件错误,它会中断函数。所以如果你真的需要这个变量,它必须满足条件。就像一个 if let 但更干净 :)

From your example: var testString = String?() is invalid. Instantiate an String will never be nil so no optional is requiert.



编辑:
我在 Playground 中写了一个例子。
import UIKit

var var1 : String?

var validVar : String = {
guard let validVar = var1 else {
print("not nil")
return "NIL"
}
return validVar
}()

print("\(validVar)")

关于swift2 - 如何在函数之外使用 guard ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835554/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com