我们使用"?"将变量定义为可选,例如:
var name : String?
然后在整个程序中我们使用"?"获取变量名称值,例如:
print (name?)
无论如何我们可以摆脱"?"每次展开可选变量时。
答案 0 :(得分:2)
您需要使用conditional binding来避免它。
例如:
var name : String?
name = "Hello world"
if let unwrappedName = name as? String
{
// Now unwrappedName isn't optional
}
基本上,unwrappedName将是String AKA不是可选的。
但它真的取决于你想要实现的目标,如果你确定name
永远不会是零,我建议使用隐式解包:
var name : String!
但是使用隐式解包建议名称可能为nil,因此需要再次检查条件绑定 - 这一切都取决于你对变量永远不会是nil的肯定程度。
答案 1 :(得分:1)
您应该使用if let
和guard let
打开可选项。