当前位置: 首页 > 面试题库 >

如果模块不是main.swift,则“不允许在顶层表达”

訾凯歌
2023-03-14
问题内容

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

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

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


问题答案:

显然,按照这个答案。 但是,没有关于这种行为的引用

更新 这在Swift博客中有记录:

…之前我们说过, 大多数 应用源代码文件都不允许使用顶级代码。唯一的例外是名为“
main.swift”的特殊文件,其行为与游乐场文件非常相似,但使用您应用程序的源代码构建。“
main.swift”文件可以包含顶级代码,并且顺序相关的规则也适用。实际上,将在“
main.swift”中运行的第一行代码隐式定义为程序的主要入口点。只要最小的Swift程序在“ main.swift”中,它就可以成为一行。




 类似资料:
  • 我一直在尝试上传一个模块,它在1.6版本上运行得非常好,但是当我尝试上传到1.7版本时,我得到了下一个错误-检查屏幕截图。 我到处都在寻找错误,但找不到解决方法,请帮忙。

  • 问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。

  • 问题内容: 我在这里的研究中得到了不同的答案。 有人可以验证Redis服务器只能存储任何数值的表示吗? 例如,如果我在lpush中使用具有双重类型的Java客户端(Jedis),在发送给Redis之前是否需要将其转换为等效于字符串类型的内容? 还是有一种方法可以发送诸如double之类的实际数字类型?如果是这样,是否有任何示例代码说明了如何实现此目的? 谢谢 问题答案: Redis将所有内容存储在

  • 我有一个正则表达式,允许一个大小写,一个小写,8-16个字符和大多数特殊字符,包括空间。我想在正则表达式中添加允许空间。 我曾经尝试过: > 正则表达式中的空格 Regex允许字母数字、空格和一些特殊字符 Java空间和换行正则表达式 我的正则表达式如下: 我只想在这里加一点空间。我试过和

  • 问题内容: 我有以下程序: module-info.java Main.java 该程序使用以下选项成功编译: 但是,当我添加参数时,它将失败: 基本上,这两个命令是等效的。那么为什么要禁止后者呢? 另外,由于IDEA将参数传递给javac,因此,如果我的项目需要内部API,则无法在IDEA中进行开发。 我正在使用JDK 9 + 178。 问题答案: 这似乎从这个bug票是不能结合使用,和。 从链

  • 我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零。 e. g. 这些是不允许的。 但这些是允许的: 到目前为止,我拥有的javascript正则表达式是: 但这似乎不起作用。 规则是电话号码可以包含数字和和和。它可以以0开头,但电话号码不能是单个0或仅包含或不包含上述字符的多个零。 你能给我指一下正确的方向吗。提前谢谢。