Xcode 10 Playgrounds 变量初始化更改? Xcode 10 Playgrounds 是翻译吗?

Change in Xcode 10 Playgrounds Variable Initialization change? Are Xcode 10 Playgrounds an interpreter?

我注意到 Xcode 10 中的 Playgrounds 不再允许使用已声明但未初始化的变量。例如: 虽然这段代码可以在 Xcode 9 操场上运行,但在 Xcode 10 操场上(至少在 Beta 1 中),它会崩溃:

var myValue: Int
//...
myValue = 100

print (myValue)

// Xcode 9 prints 100
// Xcode 10 reports an error: variables currently must have an initial value when entered at the top level of the REPL
  1. 这是新行为,还是当前 Xcode 10 beta 中的一个错误?

  2. 我之前提到过 Xcode Playgrounds 是翻译,但人们还会认为 Xcode 10 playgrounds 是翻译吗(这总是正确的)吗? Apple 将装订线中的 "Run" 按钮称为 "compiling" 代码。

谢谢!

1) 如果你不初始化 let 声明的常量,你现在得到的错误是 Xcode 10 的新错误,但只在 Swift REPL 或操场上,如果你编译代码(见下文)。

2) Swift Playgrounds REPL(Read-Eval-Print-Loop)和解释器几乎是一回事,但又不完全相同。 REPL 是一个交互式文本编辑器,可以读取您的代码语句、执行它们并打印结果,在您编辑文本时循环。当您在 Playground 中进行编辑时,Xcode 一遍又一遍地重新执行编辑器中的所有代码,一次一行,就好像您每次都是第一次输入每一行一样。这与解释器的不同之处仅在于解释器通常从输入文件中读取代码,一次一行地解释和执行它,而不是在执行开始之前先将其全部编译并链接到机器代码。

我遇到了这个错误。我有两个不同的游乐场,一个有错误,一个没有。问题是我的游乐场没有设置 "Automatically Run"。要设置该选项,请单击 playground 中调试 window 顶部的播放箭头,您将看到 "Automatically Run" 的选项,选择它。

肯定是自动 运行 模式更像是 运行 整个程序,而手动 运行 不是。