【问题标题】:How to Import modules without an Xcode project in Swift如何在 Swift 中导入没有 Xcode 项目的模块
【发布时间】:2015-03-17 01:28:29
【问题描述】:

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

例如:

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

// 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 file2.swift”。但它告诉我..

error: no such module 'file1.swift'

很明显 swift 编译器正在寻找一个模块。如何将 file1 制作成模块?我见过一些解决方案,但它们都发生在 Xcode 中。我正在寻找的是在命令行中完成所有操作。

【问题讨论】:

标签: swift command-line module read-eval-print-loop


【解决方案1】:
// file1.swift
func sayHello() -> String {
    return "hello"
}

// main.swift
println(sayHello())

然后从终端:

$ swiftc file1.swift main.swift 
$ ./main 
hello

【讨论】:

    【解决方案2】:

    参见 http://computers.tutsplus.com/tutorials/alfred-workflows-in-swift--cms-21807 获取从命令行创建模块(Alfred 帮助程序库)的示例,也参见 http://www.alfredforum.com/topic/4902-alfred-workflows-in-swift-tutorial-is-available/?p=35662,其中教程的作者更详细地解释了四步编译过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 2017-04-19
      • 2020-09-14
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      相关资源
      最近更新 更多