【发布时间】:2019-11-24 08:03:11
【问题描述】:
我在 Swift 标准库 struct Double() 中发现了奇怪的行为。此函数将表示数字的字符串转换为双精度数字。一切顺利。
我最近发现了前导空白的奇怪行为,即如果单个空白字符空间导致有效数字字符串,则转换失败:
示例(Xcode 调试器)
(lldb) po Double("11.8000")
▿ Optional<Double>
- some : 11.8
(lldb) po Double(" 11.8000")
nil
我没有看到这个文档,所以我把它贴在这里。 不优雅的解决方法是:
let myNumber = Double(myString.trimmingCharacters(in: .whitespaces))
有更好的解决方案吗?我的意思是除了用 trim() 替换 trimmingCharacters(in: .whitespaces) 的简单字符串扩展。我认为 Double() 及其亲属应该能够在内部处理前导和尾随空格。
【问题讨论】:
标签: swift string standard-library