【发布时间】:2017-01-28 04:59:54
【问题描述】:
我有一个非常简单的项目。它是使用 Xcode 8.0 在 Swift 3.0 上编写的命令行工具。这个程序是:
import Foundation
func aaa() {
print(a)
}
let a = "a"
aaa()
这运行得很好,在控制台中打印“a”,但让这个程序更复杂:
import Foundation
func aaa() {
print(a)
print(b)
}
let a = "a"
let b = "b"
aaa()
和线
print(b)
标有错误
使用未解析的标识符“b”
我们可以让事情变得更简单:
import Foundation
func aaa() {
print(a)
}
aaa()
let a = "a"
又是一行
print(a)
标有错误
使用未解析的标识符“a”
我不是新手,我知道我可以轻松修复此错误,例如将所有变量放在程序的开头。问题是:为什么会这样? 我认为每个扩展名为 .swift 的文件都是一个类,我可以放置变量和函数,以任何顺序调用函数(所有变量和常量都是全局的)......最后一件事,我没有能力在 Swift 2.2 上测试这个,但我不记得我以前遇到过这个错误,所以它会是 Swift 3.0 编译器的错误吗? 感谢您的任何回答!
【问题讨论】:
标签: swift2 theory swift3 xcode8 command-line-tool