我有一个非常简单的项目。它是使用Xcode 8.0在Swift 3.0上编写的命令行工具。这个程序是:Swift 3.0使用未解析的标识符
import Foundation
func aaa() {
print(a)
}
let a = "a"
aaa()
这是工作得很好,并打印“一”在控制台上,但让做这个程序较为复杂:
import Foundation
func aaa() {
print(a)
print(b)
}
let a = "a"
let b = "b"
aaa()
和线路
print(b)
标有错误
Use of unresolved identifier 'b'
我们可以更容易:
import Foundation
func aaa() {
print(a)
}
aaa()
let a = "a"
再次,线
print(a)
标有错误
Use of unresolved identifier 'a'
我不是新手,我undertand,我可以很容易地解决这个错误比如将所有变量放在程序的开头。问题是:为什么会发生? 我认为每个文件的扩展名为.swift,它是一个类,我可以把变量和函数,以任意顺序调用函数(所有变量和常量将是全局的)...最后一件事,我没有能力在Swift 2.2上测试这个,但是我不记得我之前遇到过这个bug,那么它可能是Swift 3.0编译器的错误? 谢谢你的回答!
谢谢你的回答。您如何看待,我们应该向苹果公司报告? – Alex
是的,为什么不呢?如果你是幸运的,如果他们回复你的不同解释,不要忘了在这里分享:) – pedrouan
我会的,但我需要一些时间... – Alex