Hashbang Swift

Uma maneira fácil de executar um código rápido a partir do Terminal é definindo o hashbang ( #!).

#!/usr/bin/xcrun swift -i

func hanoi
<T>(numberOfDisks n :Int, fromRod f: T, toRod t: T, usingRod u: T, closure: (T, T) -> ()) {
if n > 0 {
hanoi
(numberOfDisks: n - 1, fromRod: f, toRod: u, usingRod: t, closure)
closure
(f, t)
hanoi
(numberOfDisks: n - 1, fromRod: u, toRod: t, usingRod: f, closure)
}
}

hanoi
(numberOfDisks: 4, fromRod: "A", toRod: "B", usingRod: "C") {
println
("Move from ($0) to ($1)")
}

Depois que o hashbang é definido, o arquivo pode ter seus bits de modo alterados para torná-lo executável.

$ chmod +x hanoi.swift

E, finalmente, o Swift em execução no terminal:

$ ./hanoi.swift
Move from A to C
Move from A to B
Move from C to B
Move from A to C
Move from B to A
Move from B to C
Move from A to C
Move from A to B
Move from C to B
Move from C to A
Move from B to A
Move from C to B
Move from A to C
Move from A to B
Move from C to B

Mas observe que o swiftcomando é instalado pelo Xcode 6 e não é visível enquanto o Xcode 5 é o Xcode padrão definido para desenvolvimento. Para torná-lo visível, é necessário mudar para o Xcode 6 executando o comandoxcrun

$ xcrun -s /Application/Xcode6-Beta2.app