有什么办法可以避免“?”标记在 Swift 中一次又一次展开?

Any way to avoid "?" mark to unwrap again and again in Swift?

我们使用“?”将变量定义为可选,例如:

var name : String? 

然后在整个程序中我们使用“?”获取变量名值,例如:

print (name?)

有什么方法可以去掉“?”每次展开可选变量时。

您应该使用 if letguard let.

解包可选

你需要使用conditional binding来避免它。

例如:

var name : String?
name = "Hello world"

if let unwrappedName = name as? String
{
   // Now unwrappedName isn't optional
}

基本上,unwrappedName 将是字符串 AKA 不是可选的。

但这实际上完全取决于您要实现的目标,如果您确定 name 永远不会为零,我建议使用隐式展开:

var name : String!

但是使用隐式解包建议名称可能为 nil,因此需要再次检查条件绑定 - 这完全取决于您是否确定变量永远不会为 nil。

使用隐式解包选项来避免使用 ?每次都要确保您的变量在使用它时必须具有价值

let someString:String!;

当你获得 someString 的值时

someString = "this is the string"

并在不带“?”的情况下访问 someString