ios - 比较 Swift 中的两个 Double:“没有更多上下文,表达式的类型是模棱两可的”
问题描述
我有一个函数必须检查一个值(realOperand)是否大于其他值(realValue)。这些值是数字,但它们以字符串形式出现,我将它们解析为 Double:
return Double(realOperand) > Double(realValue)
我不明白为什么,但那条线给出了这个错误:
在没有更多上下文的情况下,表达式的类型是模棱两可的
解决方案
功能
Double.init(_ string: String)
返回一个可选的(类型Double?
)。
就像您编写了以下代码:
var a: Double? = nil
var b: Double? = 7
if a > b {
print("A is greater")
}
nil 是大于还是小于 7?它是未定义的。Optional
s 不是Comparable
。
如果其中一个或两个字符串都无法转换为 Double,您需要决定该怎么做:
guard let operand = Double(realOperand),
value = Double(realValue) else {
// Crash on purpose. Not a great option for user-entered Strings!
fatalError("Could not convert strings to Doubles")
}
return operand > value
推荐阅读
- python - 如何在 Python 中从 PHP API 获取文本
- image - 将现有代码更改为基于位图单色的彩色像素
- c# - 避免为异步方法重新创建事件委托
- python - 在python中复制sumif公式
- google-chrome - 无法创建 chrome 开发者帐户来发布 chrome 扩展
- mongodb - docker-compose 文件不会从专用 env 文件中获取环境变量,导致数据库播种失败
- idoc - 在 BODS 中使用 IDoc 进行数据迁移
- css - 完整的 CSS 规则作为 SCSS 中的变量
- json - 在 Interface{} 中存储配置结构并将其转换回原始结构
- google-sheets - 如何为每列创建新记录?