swift - 可选值返回 nil 和 ?? 操作员
问题描述
我正在尝试将可选字符串转换为 Double,但是当我打开包装时,我的值没有被采用:
let currentSwimDistanceTravelled = defaults.string(forKey: "SwimTotal") ?? "0.0"
运行此代码后,currentSwimDistanceTravelled 被分配一个字符串值“”,而不是“0.0”。
对不起,如果我在这里错过了一些基本的东西,但我想??是解开可选项的最佳方式。
解决方案
default operator ??
仅当左侧为时才执行右侧nil
。我认为您的左侧是空字符串""
。尝试以下操作:
var currentSwimDistanceTravelled = "0.0"
if let val = defaults.string(forKey: "SwimTotal"), val != "" {
currentSwimDistanceTravelled = val
}
推荐阅读
- java - 为什么我的数组中没有任何元素
- python - 列表前两个元素的总和
- javascript - 如何使用 REST API 将我的 csv 文件作为表单数据传递
- android - 在 Android 中禁用 GridView Scroll 并启用 Scroll 视图
- javascript - 为我的项目创建删除按钮时遇到问题
- reactjs - Passing props to reactjs material ui modal
- excel - VBA删除范围周围的边框
- python - Django - Not Found 在此服务器上未找到请求的资源
- react-native - 如何聚类除一个之外的所有标记
- google-chrome - Chrome 开发工具报告不存在的维度