Having a file with function definition bar.swift
:
func bar() {
println("bar")
}
And a script to be run in immediate mode foo.swift
:
#!/usr/bin/xcrun swift -i
bar()
How do you import bar.swift
's bar()
function from foo.swift
?
I think the answer right now is that you can't split code across multiple files unless you compile the code. Executing with #!/usr/bin/swift
is only possible for single file scripts.
It's obviously a good idea to file an enhancement request at http://bugreport.apple.com/, but in the mean time you're going to have to compile the code before executing it.
Also, your foo.swift
file cannot have that name, you have to rename it to main.swift
. If there are multiple files being complied, then only main.swift
is allowed to have code at the top level.
So, you have these two files:
main.swift:
bar()
bar.swift:
func bar() {
println("bar")
}
And compile/execute the code with:
$ swiftc main.swift bar.swift -o foobar
$ ./foobar
bar
If all your swift files are in the same directory, you could shorten the compile command:
$ swiftc *.swift -o foobar
Or if you want to search child directories:
$ find . -iname '*.swift' | xargs swiftc -o foobar
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With