Xcode ';不允许在顶层使用表达式';如果模块不是main.swift

Xcode ';不允许在顶层使用表达式';如果模块不是main.swift,xcode,swift,Xcode,Swift,main.swift文件有什么特别之处吗 我已经在XCode中创建了一个基于命令行的项目。如果我放一个表达式println(“你好,世界!”)在一个新的swift文件中显示test.swift,我将得到错误消息:表达式不允许位于顶层 但是,此表达式位于新项目中由XCode创建的main.swift的顶层。XCode没有标记此类异常。显然是的,根据这一点。然而,没有关于这种行为的引证 更新 这记录在: 。。。早些时候我们说过,应用程序的大多数源文件中都不允许使用顶级代码。例外情况是一个名为“mai

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

我已经在XCode中创建了一个基于命令行的项目。如果我放一个表达式
println(“你好,世界!”)
在一个新的swift文件中显示test.swift,我将得到错误消息:
表达式不允许位于顶层


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

显然是的,根据这一点。然而,没有关于这种行为的引证

更新 这记录在:

。。。早些时候我们说过,应用程序的大多数源文件中都不允许使用顶级代码。例外情况是一个名为“main.swift”的特殊文件,其行为类似于游乐场文件,但它是使用应用程序的源代码构建的。“main.swift”文件可以包含顶级代码,订单相关规则也适用。实际上,在“main.swift”中运行的第一行代码被隐式定义为程序的主入口点。这允许最小Swift程序是一行,只要该行位于“main.Swift”中


我想知道它是否真的是main.swift,或者你有两个文件。这里是一个简单的演示

文件夹:swift testy
文件1:main.swift
文件2:ex1.swift

内容包括:

梅因·斯威夫特 例1.swift 单击“运行”按钮时输出 你好,世界!
woof

如果您有多个swift文件,并且正在构建命令行项目,那么请确保您有可用的main.swift,它将作为应用程序的入口点。另外,main.swift应该在您的模块中,否则会出现以下错误:

error: the package has an unsupported layout, unexpected source file(s) found: /Users/.../../Hello/main.swift

修复:将文件移动到模块中

运行文件时使用的命令是什么?只需从Xcode(播放按钮)中直接运行它,即使在我尝试运行它之前,Xcode IDE也会标记错误消息。您不能这样做。您正在尝试运行一个需要main方法的成熟程序。相反,您可以从命令行运行它,也可以将要运行的代码放在主函数中。非常感谢。
import Foundation

class Dog {
    func bark() {
        println("woof") // This is a comment
    }
}
error: the package has an unsupported layout, unexpected source file(s) found: /Users/.../../Hello/main.swift