如何在Swift中导入没有Xcode项目的模块
我使用命令行创建swift文件,并使用“swift”命令运行其中一个文件。但是,我希望一个文件能够从另一个文件访问函数。如果这是C,那么我可以使用#include宏并指定文件的位置。但斯威夫特的进口声明似乎不允许这样做。应该有办法,我想知道怎么做 例如: 如果我有一个包含函数的文件,然后我创建了另一个使用该函数的文件。我如何允许它使用它如何在Swift中导入没有Xcode项目的模块,swift,command-line,module,read-eval-print-loop,Swift,Command Line,Module,Read Eval Print Loop,我使用命令行创建swift文件,并使用“swift”命令运行其中一个文件。但是,我希望一个文件能够从另一个文件访问函数。如果这是C,那么我可以使用#include宏并指定文件的位置。但斯威夫特的进口声明似乎不允许这样做。应该有办法,我想知道怎么做 例如: 如果我有一个包含函数的文件,然后我创建了另一个使用该函数的文件。我如何允许它使用它 // file1.swift import Foundation func sayHello() -> String { return "hel
// file1.swift
import Foundation
func sayHello() -> String {
return "hello"
}
// file2.swift
import file1 // <-- trying to import file1 but it doesn't work
println(sayHello())
显然,swift编译器正在寻找一个模块。如何将文件1制作成模块?我见过一些解决方案,但它们都发生在Xcode中。我想要的是在命令行中完成这一切。有关从命令行创建模块(Alfred helper库)的示例,请参见本教程作者在其中更详细地解释了四步编译过程
// file1.swift
func sayHello() -> String {
return "hello"
}
// main.swift
println(sayHello())
然后从终端:
$ swiftc file1.swift main.swift
$ ./main
hello
$ swiftc file1.swift main.swift
$ ./main
hello