Is there a way to have a Swift script use multiple

2019-01-25 08:18发布

I am trying to write a script with Swift (not an Xcode project). To be clear, the first line of my file is

 #!/usr/bin/swift

And I am just calling it from the command-line.

However, I can't figure out how to have that script use code that is in another .swift file. It doesn't pick it up from the same directory and there is no way to import that I can see.

Is this supported?

3条回答
Melony?
2楼-- · 2019-01-25 08:53

My current solution is a simple shell script that concatenates all the files into one and executes the concatenated file:

TMPFILE=`mktemp /tmp/Project.swift.XXXXXX` || exit 1
trap "rm -f $TMPFILE" EXIT 
cat *.swift > $TMPFILE
swift $TMPFILE
查看更多
▲ chillily
3楼-- · 2019-01-25 09:00

What I find interesting is that even as a compiled language, any custom classes have to be defined above any usage of that class. i.e. in the solution above, if "B.swift" uses a class defined in "A.swift", you must cat "A.swift" first. That has been my own experience running from the command line, anyway

查看更多
贪生不怕死
4楼-- · 2019-01-25 09:08

I use a variant of Marián's solution:

cat A.swift B.swift main.swift | swift -
查看更多
登录 后发表回答