Swift でもスクリプトが書ける
Swift 言語というと、普段は iOS アプリや MacOS アプリを開発するために、Xcode 上で執筆するイメージが強い。しかし、Swift でサーバサイドを実装したりもできるそうで、決して Mac・iOS アプリ開発専用言語、というワケではないようだ。
ある時、海外プログラマの dotfiles を見ていたら、.swift
なスクリプトファイルを作っている人を発見。そこで調べてみると、Swift でも Bash や Perl などのようなスクリプトを書けることが分かった。
以下にサンプルコードを掲載する。
#!/usr/bin/env swift
import Foundation
print("Swift スクリプト : Start")
// 現在日時を JST で表示する
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.locale = Locale(identifier: "ja_JP")
print("\(dateFormatter.string(from: Date()))")
print("Swift スクリプト : Finished")
このようなスクリプトを example.swift
といった名前で保存すれば、Mac のターミナルから次のように実行できる。
$ swift ./example.swift
# 実行権限を与えれば次のように直接呼べる
$ ./example.swift
1行目の Shebang は
#!/usr/bin/env swift
#!/usr/bin/env xcrun swift
#!/usr/bin/swift
などで動作することが確認できた。
print()
は Swift
標準ライブラリに入っており、import Swift
と書かなくても利用できる。Swift.print()
と書いても同じ。
ちなみに、Date()
や DateFormatter
のために import Foundation
を追加しているが、この Foundation
内では明示的に import Swift
と書かれている模様。勿論、Foundation
をインポートしなくても print()
は動く。
…ココまで紹介しておいてアレだが、「Swift じゃないと書きにくいスクリプト」の例が特に思いつかなくて、とりあえず「Swift でもスクリプトが書ける」っていうところまでしか試していないw。Swift を書き慣れていて Bash とか Perl とかが苦手な人は選択肢になるのかもしれない。