是否可以在函数外部使用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
}()
如果我错了,请随时纠正我:)
我认为函数的健壮性是为了提供保护,如果条件不正确,则会破坏函数。因此,如果您确实需要此变量,则必须满足条件。像一个如果让但更干净的:)
编辑:
我在操场上写了一个例子。
import UIKit
var var1 : String?
var validVar : String = {
guard let validVar = var1 else {
print("not nil")
return "NIL"
}
return validVar
}()
print("\(validVar)")