Swift中的导入是如何工作的?

4
如果我在另一个文件/嵌套文件夹中有一个functionstructenumclass,我该如何导入它以在另一个文件中使用呢?我是一名JavaScript开发人员,现在决定学习Swift,所以我还在努力理解这个问题。
注意:我不是在构建iOS/macOS应用程序。我正在尝试构建Linux命令行软件。enter image description here

enter image description here


我看到你在Sources中有嵌套文件夹。使用SPM时,每个新文件夹级别都会创建一个新的目标。请参见https://github.com/apple/swift-package-manager/blob/master/Documentation/Reference.md#source-layouts。我自己从未尝试过,但我认为在这种情况下,您必须在Package文件中声明这些目标,请参见https://github.com/apple/swift-package-manager/blob/master/Documentation/Reference.md#targets。 - Eric Aya
那么这意味着我需要将我的代码分成模块吗?我想相信有更好的方法来解决这个问题。这种方法是不可扩展的。 - Web3 Philosopher
请发布您代码的文本,而不是屏幕截图。 - John Montgomery
2个回答

0

如果这是相同的目标 - 您不需要导入任何内容,应该可以无问题地使用它。

如果您有单独的目标(例如库的框架),则应执行import ModuleName以访问代码。

默认情况下,事物是internal,这意味着您可以在整个模块中访问它们。如果它们是privatefileprivate,则无法访问。


那不起作用,我已经在我的问题中更新了一张截图。 - Web3 Philosopher
2
你使用的是什么环境?从你的屏幕截图来看,该环境似乎没有意识到Main和Flag应该是同一个模块的一部分。 - Scott Thompson

0

在任何你想使用它的地方写入 "var main = Main()",然后使用 main.getArgs //通过这样写,您定义了该结构体的实例


我不明白你的意思。请再次检查图片。未定义的不是结构体,而是枚举。 - Web3 Philosopher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接