Xcode 10游乐场变量初始化更改?Xcode 10游乐场是翻译吗



我注意到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测试版中的一个错误?

  2. 我一直把早期的Xcode游乐场称为解释器,但人们还会认为Xcode 10游乐场是解释器吗(这总是正确的吗(?苹果公司将水槽中的"运行"按钮称为"编译"代码。

谢谢!

我遇到了这个错误。我有两个不同的操场,一个有错误,一个没有。问题是我的操场没有设置"自动跑步"。要设置选项,请单击操场上调试窗口顶部的播放箭头,您将看到"自动运行"选项,选择它。

"自动运行"模式更像是运行整个程序,而手动运行则不然。

1(如果您不初始化let声明的常量,那么您现在得到的错误在Xcode 10中是新的,但仅在Swift REPL或操场中,而不是在编译代码时(见下文(。

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

最新更新