如果模块不是main.swift,则"顶层不允许表达式"

Ant*_*ong 24 xcode swift

main.swift文件有什么特别之处吗?

我在XCode中创建了一个基于命令行的项目.如果我把一个表达式println("Hello, World!");放在一个新的swift文件中说test.swift,我会收到错误信息: Expressions are not allowed at the top level

但是,此表达式位于由新项目中的XCode创建的main.swift中的顶层.XCode不会标记此类异常.

Man*_*nav 14

显然是的,根据这个答案.但是,没有引用这种行为.

更新在Swift博客上有记录:

...早些时候我们说大多数应用的源文件都不允许使用顶级代码.例外是一个名为"main.swift"的特殊文件,其行为与操作员文件非常相似,但是使用您应用的源代码构建."main.swift"文件可以包含顶级代码,并且依赖于顺序的规则也适用.实际上,在"main.swift"中运行的第一行代码被隐式定义为程序的主要入口点.这允许最小的Swift程序是单行 - 只要该行在"main.swift"中.

  • 如果文件必须命名为“main.swift”不明显,则“Main.swift”不起作用。 (4认同)