main.swift
文件有什么特别之处吗?
我在XCode中创建了一个基于命令行的项目。如果我将表达式println("Hello, World!");
放在一个新的swift文件中说test.swift,我将收到错误消息:Expressions are not allowed at the top level
但是,此表达式位于由新项目中的XCode创建的main.swift的顶层。 XCode不会标记此类异常。
答案 0 :(得分:14)
显然是的,按照answer。 但是,没有关于此行为的引用。
<强>更新强> 这记录在the Swift blog:
上...之前我们说过,应用程序源文件的大多数中不允许使用顶级代码。例外是一个名为“main.swift”的特殊文件,其行为与操场文件非常相似,但是使用您应用的源代码构建。 “main.swift”文件可以包含顶级代码,并且依赖于顺序的规则也适用。实际上,在“main.swift”中运行的第一行代码被隐式定义为程序的主要入口点。这允许最小的Swift程序是单行 - 只要该行在“main.swift”中。
答案 1 :(得分:0)
我想知道它是不是真的是main.swift,或者你有两个文件。这是一个简单的演示。
文件夹:swift-testy
Files1:main.swift
Files2:ex1.swift
内容是:
import Foundation
println("Hello, World!")
let chaulky = Dog()
chaulky.bark()
import Foundation
class Dog {
func bark() {
println("woof") // This is a comment
}
}
你好,世界! 纬
答案 2 :(得分:0)
如果你有多个swift文件并且你正在构建一个命令行项目,那么请确保你有 main.swift ,这将作为你的应用程序的入口点。此外, main.swift 应该在您的模块中,否则您将收到以下错误:
error: the package has an unsupported layout, unexpected source file(s) found: /Users/.../../Hello/main.swift
修复:移动模块内的文件