为什么不快速允许三元组中基于let的决策?

Dep*_*o B 0 swift

可以在Swift中执行以下操作:

let params: String
if let aString = someOptionalString {
    params = "?someparam=\(aString)"
} else {
    params = ""
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我可以这样写它会更简洁:

let params = let aString = someOptionalString ? "?someparam=\(aString)" : ""
Run Code Online (Sandbox Code Playgroud)

要么

let params = case let aString = someOptionalString ? "?someparam=\(aString)" : ""
Run Code Online (Sandbox Code Playgroud)

然而,这不会以任何我能想到的方式编译.这可能吗?如果没有,为什么不呢?有没有办法建议实现它,或者我只能尝试首先将自己添加到Swift项目中,然后向社区提出更改?

Ale*_*ica 5

因为映射可选项是一个更明智的选择:

let params = someOptionalString.map{ "?someparam\($0)" } ?? ""
Run Code Online (Sandbox Code Playgroud)