Swift REPL:如何导入,加载,评估或需要.swift文件?

时间:2015-01-10 03:30:08

标签: swift import require read-eval-print-loop

在Swift REPL中,如何导入(a.k.a. load,evaluate,require)典型的文本* .swift文件?

  • 我想使用此文件中的代码:~/src/Foo.swift

  • 这样的语法不起作用:import ~/src/Foo.swift

进行比较:

  • 框架的Swift REPL中的等效解决方案是:import Foundation

  • * .ruby文件的Ruby REPL中的等效解决方案是:require "~/src/foo"

这些类似的问题是/不是/我在问什么:

  • 如何使用/制作Swift命令行脚本,可执行文件,模块等

  • 如何使用/制作XCode游乐场,项目,库,框架等

  • 如何使用预先存在的文件列表启动REPL。

4 个答案:

答案 0 :(得分:6)

你需要使用-I,所以如果你的modulename.swiftmodule文件在〜/ mymodules中而不是使用

启动swift
swift -I ~/mymodules

然后您就可以导入模块

import module name

应该那么容易

答案 1 :(得分:3)

在swift中,您无法导入典型的* .swift文件。

对于Import Declaration,只能使用以下语法:

  

“   import-declaration→属性选择 导入 import-kind opt import-path
   import-kind→typealias |结构|类|枚举|协议| VAR | FUNC
  import-path→import-path-identifier |进口路径identifier.import路径
  import-path-identifier→标识符|运营商”

  来自:Apple Inc.“The Swift Programming Language(Swift 2)”。iBooks。

可以描述为以下格式:

  

导入module
  导入import kind modulesymbol name
  导入modulesubmodule

import head.swiftimport import-kind module.symbol-name

不兼容

通常将要导入的文件编译为框架。然后将其视为模块。使用-F framework_directory/指定第三方框架'搜索路径。

  1. 创建一个文件。例如:

    // test.swift import headtest print("Hello World")

  2. 打开您的终端

  3. 转到您创建文件的目录。
  4. 执行命令行

    swift -F headtest test.swift

  5. 完成了。

答案 2 :(得分:0)

只需在脚本顶部插入shebang行:

#!/usr/bin/env xcrun swift

答案 3 :(得分:0)

您可以将源代码复制/粘贴到repl中并执行它。 显然不是很理想,但有时很有用。