是否有可能使用模式与三元如果运营商相匹配?如果运营商
请看下面的例子:
let someString: String? = ...
if let embedURL = embedURL {
return NSURL(string: embedURL)
} else {
return nil
}
这是冗长。我希望能够做这样的事情:
return let someString = someString ? NSURL(string: someString) : nil
或
return case let .Some(someString) = someString ? NSURL(string: someString) : nil
但是编译器不接受。我知道我可以初始化器添加到NSURL
它接受可选的字符串,正常使用if
声明甚至switch
声明,但我想知道是否有可能与三元if
运营商做,或是否将有可能在一些点在未来。
FYI的陷阱,你可以简单的写'让URL = someString.flatMap (NSURL.init)' – Cosyn
@Cosyn:你完全正确,谢谢! –