昨日のWWDCでiOS&MacOSアプリ開発言語として、
Objective-CのかわりになるSwiftが発表されました。
言語仕様と若干のサンプルコードが紹介されています。
言語仕様はiBooksDocumentでもダウンロードできるので、iPhoneで移動中にも読むことができますね。
iTunes – Books – The Swift Programming Language by Apple Inc.
大きな特徴としては、モダンなスクリプト言語に似たコード体系になったことでしょう。
RubyのようにPythonのように、行末のセミコロンが必要ありません。
コンパイラがコードを認識してくれるようです。
セミコロンを付けても、問題はないようです。
次に従来のC++を世襲したファイル体型もかわり、ヘッダファイルとコードファイルは統合され、一つのswiftファイルとなります。
変数の宣言方法も変わります。
大きく分けて var と let という宣言を行います。
var は可変 let は 不変 ということになります。
データ型を指定しなければ、自動で認識してくれるのですが、明示的にデータ型を指定することもできます。
var name :String = “名前”
また、変数名はUnicode文字が利用できるとのこと。
var てすと:String = “tesuto”
println(てすと)
あまり使う気はないですが、π=3.14 とかそういうのはわかりやすいかもですね。
あとは関数の扱いがかなり柔軟性のあるものになり、スクリプト言語である無名関数が使えるようになった、関数内に局所的関数を作ることができたり、当然のように関数自体を関数の引数として渡したりができるようになっています。
プログラムの動きとかは Swift Tour Documentを読めば、今までモダンな言語に触れたことがある人ならだいたい理解できると思いますので省略します。
逆に言うと、いきなりこの言語からプログラミング言語を学習しようという人は、ちょっと大変なんじゃないかなという気がしないでもないですが、その辺は人によるのかも。
列挙型であるEnumと構造体のStructがかなり拡張されているように見受けられます。
コードの書き方は、Documentを見ればだいたいわかるので問題ないですが、
一番問題になりそうなのはObjective-C APIの利用方法です。
iOS開発の場合は、そちらのほうがほぼ全てなわけなので、プログラムの書き方など二の次だと思います。
そちらはここにサンプルが若干あります。
Using Swift with Cocoa and Objective-C: Interacting with Objective-C APIs
例えば、情報を保存させておくNSUserDefaultsを使おうとすると
let df = NSUserDefaults.standardUserDefaults()
df.setInteger(5, forKey: “set_key”)
println(df.integerForKey(“set_key”))
こんな感じで利用することになります。
Swift Tourをみると、メソッドや関数の引数を与える時に、引数に設定した識別子を記述する必要がないような書き方なんですが、XCode6betaでは2個目の引数以降に識別子を指定していないとコンパイルエラーになっているので、 forKey: というのを付与してやらないといけません。
あと、なんだかまだコード補完が行き渡っていないようなので、API系のコード補完がされないので、慣れるまでは調べながら作業を進めないといけないような感じですね。
大筋は従来のObjective-Cに比べると、簡潔で柔軟な書き方ができるので、良さそうです。
言語のHow Toに関してはもっとサンプルコードが欲しいですね。
コメント
新しいApple開発言語のSwift、とても気になる存在です。これからどんどんSwiftに移行していくのでしょうか。クールアプリ(http://www.coolapp.jp/)