有没有办法让Swift脚本使用多个文件

Lou*_*nco 12 command-line swift

我正在尝试用Swift编写脚本(不是Xcode项目).要清楚,我的文件的第一行是

 #!/usr/bin/swift
Run Code Online (Sandbox Code Playgroud)

我只是从命令行调用它.

但是,我无法弄清楚如何让该脚本使用另一个.swift文件中的代码.它不会从同一目录中提取它import,我无法看到它.

这支持吗?

Mar*_*one 17

我使用Marián解决方案的变体:

cat A.swift B.swift main.swift | swift -
Run Code Online (Sandbox Code Playgroud)


Mar*_*rný 5

我当前的解决方案是一个简单的Shell脚本,它将所有文件连接成一个文件并执行连接的文件:

TMPFILE=`mktemp /tmp/Project.swift.XXXXXX` || exit 1
trap "rm -f $TMPFILE" EXIT 
cat *.swift > $TMPFILE
swift $TMPFILE
Run Code Online (Sandbox Code Playgroud)


vol*_*vol 4

有更好的方法!

#!/usr/bin/swift -frontend -interpret -enable-source-import -I.

import other_file  // this imports other_file.swift in the same folder

funcFromOtherFile()
Run Code Online (Sandbox Code Playgroud)

如果你想从中导入文件,ExampleFolder就像:

#!/usr/bin/swift -frontend -interpret -enable-source-import -I./ExampleFolder

import other_file  // this imports ./ExampleFolder/other_file.swift

funcFromOtherFile()
Run Code Online (Sandbox Code Playgroud)

  • 我认为整个解决方案现在已经被破坏了。耻辱。 (5认同)