swift - 带有 let 的三元语法更好?

标签 swift

在下面的示例中,是否有更好的方法来对 DEF 进行赋值?我想将类型 A 转换为类型 B,但仍尽可能保留 nil 可能性。

然而,似乎找不到更好的方法来做到这一点。有什么建议吗?

class ABC {

  var DEF: Int?

  func X (someValue: Int8?) {
    DEF = someValue != nil ? Int(someValue) : nil
  }
}

最佳答案

swift 1:

class ABC {

  var DEF: Int?

  func X (someValue: Int8?) {
    DEF = someValue.map{Int($0)}
  }
}

swift 2:

class ABC {

  var DEF: Int?

  func X (someValue: Int8?) {
    DEF = someValue.map(Int.init)
  }
}

map() 接受一个可选的,解包它,然后应用一个函数给它。如果可选解析为 nil,map() 返回 nil。

关于swift - 带有 let 的三元语法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31246404/

相关文章:

ios - 如何使用 rxswift 将图像绑定(bind)到 UIImageView?

ios - 使用 iOS 上的应用程序录制屏幕视频

ios - Swift 3 助手中可重用的 post 方法

ios - TableView 滞后太多并占用太多内存 Swift

ios - 在 Swift 中将 CamelCase 字符串分隔为空格分隔的单词

iOS - ScrollView 和等宽不起作用

ios - MapKit 注释如何添加详细信息披露按钮?

swift - 如何使用 swift 在 iOS 中打开定位服务页面?

ios - Swift:使用sectionNameKeyPath的单元格的indexPath

ios - 努力理解为什么 "Capturing by reference ensures that runningTotal and amount do not disappear when the call to makeIncrementer ends' ?