rgo*_*gov 5 date read-eval-print-loop swift
我希望这会返回一个Date表示从现在开始一小时后的时间的对象:
Calendar.current.date(byAdding: DateComponents(hour: 1), to: Date())
Run Code Online (Sandbox Code Playgroud)
然而它又回来了nil。这似乎是 API 的相当简单的使用,所以也许我对这个 API 应该如何工作有一些基本的误解?
这似乎只影响swiftXcode 附带的命令行 REPL(macOS Catalina 10.15.3 上的版本 11.3.1)。
有趣的是,将上述代码包装在print()调用中会强制它打印正确的结果。那么为什么会显示呢nil?
Apple Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15)
Target: x86_64-apple-darwin19.3.0
Run Code Online (Sandbox Code Playgroud)
这是 Swift REPL 中的一个错误,请参阅
它影响某些 Swift 覆盖类型(例如Date、Calendar、URL)的可选和非可选值。例子:
$ 迅速
欢迎使用 Apple Swift 版本 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15)。
输入 :help 寻求帮助。
1>导入粉底
2>
3> 让 d1 = 日期()
d1:日期 = {}
4> 让 d2: 日期?= 日期()
d2:日期?= 零
5> 让 url = URL(字符串: "https://www.google.com")
网址:网址?= 零
作为解决方法,您可以打印这些值:
7> 打印(d1) 2020-03-03 10:17:00 +0000 8> 打印(d2) 可选(2020-03-03 10:17:07 +0000) 9> 打印(网址) 可选(https://www.google.com)
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |