在Swift中为Optional提供默认值?

在Swift中为Optional提供默认值?,第1张

概述在Swift中处理可选属性的习语看起来过于冗长,如果你想做的是在nil的情况下提供一个默认值: if let value = optionalValue { // do something with 'value'} else { // do the same thing with your default value} 这涉及不必要地复制代码,或 var unwrappedV 在Swift中处理可选属性的习语看起来过于冗长,如果你想做的是在nil的情况下提供一个默认值:
if let value = optionalValue {    // do something with 'value'} else {    // do the same thing with your default value}

这涉及不必要地复制代码,或

var unwrappedValueif let value = optionalValue {    unwrappedValue = value} else {    unwrappedValue = defaultValue}

这要求unwrappedValue不是常数。

Scala的Option monad(基本上和Swift的Optional一样)有一个方法getorElse用于这个目的:

val myValue = optionalValue.getorElse(defaultValue)

我缺少什么? Swift有一个紧凑的方式已经做了吗?或者,失败,是否可以在可选的扩展中定义getorElse?

更新

苹果现在增加了一个合并运算符:

var unwrappedValue = optionalValue ?? defaultValue

在这种情况下,三元运算符是您的朋友

var unwrappedValue = optionalValue ? optionalValue! : defaultValue

您还可以为可选枚举提供自己的扩展:

extension Optional {    func or(defaultValue: T) -> T {        switch(self) {            case .None:                return defaultValue            case .some(let value):                return value        }    }}

然后你可以做:

optionalValue.or(defaultValue)

然而,我建议坚持三元运算符,因为其他开发人员会明白更快,而不必调查或方法

注意:我开始一个module添加常用助手像这样或者可选对swift。

总结

以上是内存溢出为你收集整理的在Swift中为Optional提供默认值?全部内容,希望文章能够帮你解决在Swift中为Optional提供默认值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1061060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存