作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试根据来自可选响应的 double 设置文本提供程序的值。我觉得应该有一个更短的方法来做到这一点,但是当我尝试使用默认值时,它坚持默认值必须是 double 值,我想要一个字符串来替换它。
伪代码:
If we have a current value
use it
else
use "--"
我认为可行的方法
let currentValue = uvProduct.currentValue()?.value
currentTextProvider = CLKSimpleTextProvider(text: String( currentValue ?? "--" ))
当前尝试
let currentValue = uvProduct.currentValue()?.value
let currentTextProvider : CLKSimpleTextProvider
if (currentValue != nil){
currentTextProvider = CLKSimpleTextProvider(text: String( currentValue! ))
} else {
currentTextProvider = CLKSimpleTextProvider(text: "--")
}
最佳答案
这是在可选 上使用map
的好地方:
let currentValue = uvProduct.currentValue()?.value
let currentTextProvider = CLKSimpleTextProvider(text: currentValue.map(String.init) ?? "--")
map
将返回 nil
如果 optional 是 nil
,否则它将运行提供的闭包。在这种情况下,String.init
接受一个 Double
并返回一个 String
。 nil-coalescing operator ??
展开 map
的结果(这是一个 String?
)或替换它如果 currentValue
为 nil
,则使用 "--"
。
关于double 的 Swift 可选和默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876349/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!