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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift REPL:如何导入,加载,评估或需要.swift文件?相关的知识,希望对你有一定的参考价值。

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

  • 我想使用此文件中的代码:~/src/Foo.swift
  • 像这样的语法不起作用:import ~/src/Foo.swift

为了比较:

  • Swift REPL中用于框架的等效解决方案是:import Foundation
  • Ruby REPL中* .ruby文件的等效解决方案是:require "~/src/foo"

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

  • 如何使用/制作Swift命令行脚本,可执行文件,模块等
  • 如何使用/制作XCode游乐场,项目,库,框架等
  • 如何使用预先存在的文件列表启动REPL。
答案

你需要使用-I,所以如果你的modulename.swiftmodule文件在〜/ mymodules中,那么启动swift with

swift -I ~/mymodules

然后你就可以导入你的模块了

import module name

应该那么容易

另一答案

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

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

“import-declaration→attributesopt import import-kindopt 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 module.symbol name 导入module.submodule

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

并做了。

另一答案

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

#!/usr/bin/env xcrun swift
另一答案

看起来无法使用您提供的规范导入文件并让Xcode使用REPL。我认为你仍然可以创建一个合适的框架,但它并不完全是你所期待的。

另一答案

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

以上是关于Swift REPL:如何导入,加载,评估或需要.swift文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Python 代码进入 REPL(读取、评估、打印、循环)

在 Chez Scheme 中重新导入库

在 Clojure 中使用 repl 而不是 println

Xcode:如何退出 lldb swift repl

Swift - 我如何等待 dispatch_async 完成?

如何有效且快速地将大型 (6 Gb) .csv 文件导入 R,而不会导致 R REPL 崩溃?