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

问题描述 投票:26回答:5

在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。
swift import require read-eval-print-loop
5个回答
6
投票

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

swift -I ~/mymodules

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

import module name

应该那么容易


3
投票

在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

并做了。


0
投票

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

#!/usr/bin/env xcrun swift

0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.