Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Swift中导入没有Xcode项目的模块_Swift_Command Line_Module_Read Eval Print Loop - Fatal编程技术网

如何在Swift中导入没有Xcode项目的模块

如何在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

我使用命令行创建swift文件,并使用“swift”命令运行其中一个文件。但是,我希望一个文件能够从另一个文件访问函数。如果这是C,那么我可以使用#include宏并指定文件的位置。但斯威夫特的进口声明似乎不允许这样做。应该有办法,我想知道怎么做

例如:

如果我有一个包含函数的文件,然后我创建了另一个使用该函数的文件。我如何允许它使用它

// 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