Normalerweise werden Sie Swift-Programme mit Xcode entwickeln und später in kompilierter Form ausführen — sei es auf einem iOS-Gerät oder unter OS X. Swift bietet aber auch abseits des bekannten Xcode-Pfads interessante Wege zur Programmausführung und -entwicklung.
REPL-Modus (Read Eval Print Loop)
Wenn Swift in einem Terminal-Fenster im REPL-Modus gestartet wird, dann werden eingegebene Anweisungen sofort kompiliert und dann ausgeführt. Swift verhält sich also ähnlich wie ein Interpreter.
Um den REPL-Modus auszuprobieren, müssen Sie zuerst herausfinden, wo sich das Programm swift
befindet. Das gelingt am einfachsten im Terminal mit dem Kommando xcrun
:
$ xcrun -f swift
/Applications/Xcode.app/Contents/Developer/Toolchains/
XcodeDefault.xctoolchain/usr/bin/swift
Die Eingabe dieses langen Pfads ist natürlich unhandlich. Also definieren Sie im Terminal zuerst einen Alias (eine Abkürzung). Wenn Sie diese Abkürzung dauerhaft nutzen wollen, bauen Sie das alias
-Kommando in die Datei .profile
ein.
$ alias swift=$(xcrun -f swift)
Nach dem Start von Swift liefert :help
einen mehrseitigen Hilfetext. Andere Eingaben, die sich auch über mehrere Zeilen erstrecken dürfen, werden sofort ausgeführt. [ctrl]
+[D]
beendet den Interpreter.
Swift-Scripts
Wenn Swift also in der Lage ist, Kommandos ad-hoc zu kompilieren und ausführen, dann muss auch die Möglichkeit bestehen, ein Swift-Script ähnlich wie ein bash-oder Python-Script zu schreiben. Dazu schreiben Sie den gewünschten Code einfach in eine Textdatei, wobei die erste Zeile exakt wie folgt aussehen muss:
#!/usr/bin/env xcrun swift
import Foundation
var username = NSFullUserName()
println("Hello (username)!")
Bevor Sie die Datei das erste Mal ausführen können, müssen Sie im Terminal das Execute-Bit setzen.
$ chmod a+x mein-script.swift
$ ./mein-script.swift
Hello Michael Kofler!
Anmerkung Swift-Scripts sind von eher geringem praktischem Nutzen. Hinter den Kulissen ist und bleibt Swift ein Compiler. Das Script wird beim (jedem!) Start zuerst kompiliert — und das dauert geraume Zeit. Sinn macht das nur, wenn in der Folge aufwendiger Code ausgeführt, die Kompilierzeit also keine große Rolle spielt. Außerdem läuft ein Swift-Script natürlich nur auf solchen OS-X-Rechner, auf denen Xcode installiert ist. Swift wird also weder die bash noch Python als Script-Sprache ablösen …
Swift-Compiler
Im Terminal ist nicht nur der Swift-Quasi-Interpreter zugänglich, sie können dort auch Swift-Programme kompilieren. Dazu ermitteln Sie zuerst den Ort der Swift-Compilers swiftc
und des Software Development Kits (SDK) für OS X. Das Kompilat erhält den gleichen Namen wie die Code-Datei, aber ohne die Endung .swift
. Es kann unmittelbar ausgeführt werden.
$ alias swiftc=$(xcrun -f swiftc)
$ platf=$(xcrun --sdk macosx --show-sdk-path)
$ swiftc -sdk $platf mein-code.swift
$ ./mein-code