Androidとかいろいろと。ソースは全てライセンスフリー。変数編さて、Appleより新しくリリースされたSwift言語ですが、早速解説を書いていきたいと思います。この章では、変数の宣言やその他基本的な要素に関して一つずつ見ていきます。変数の宣言はvarで行います。カンマで区切って複数宣言することも可能。ここら辺はセオリー通り。注目すべき点としては、配列を宣言する際に、letで宣言されていれば編集不可能に、varで宣言されていれば編集可能になることで、Objective-Cのように編集可能な配列とそう出ない配列が分かれているというわけではありません。2.型Swiftの型にはInt型やDouble型、String型など様々なものがあります。独自に型を定義することも可能で、クラスや構造体、列挙型を新しく定義することで、それらを型として利用することができるようになります。Swiftにおけるクラス、構造体、列挙型の三種類は非常に大きい役割をもっていおり、これらの三つをうまく使い分けることによって、より堅牢なプログラムが書けるようになっています。クラス、構造体、列挙型のそれぞれに関して詳しくは、以下の記事を参照してください。クラス編また、どの型の変数であっても、中身がnilになることは許されず、万が一nilになる可能性があるような型の場合には、その型のオプション型を利用する必要があります。そのため、通常の型にnilを代入しようとするとコンパイルエラーになります。オプション型について詳しくは、以下の記事を参考にしてください。String変数を宣言する際に、明示的に型を指定することもできます。コロンの後に型名を記述するだけです。初期値をあたえる場合にはたいていの場合に型推論が行われるので、基本的には型の明示は必要ありません。初期値はただのIntをあたえているけれども、Floatで管理したい、のような場合でない限りは気にする必要がないかと思います。"dogcow"なんとも衝撃的ですが、Unicodeならば基本的にはどんな文字でも利用できるようです。絵文字も使える、Swift言語ならね。いえJavaでもマルチバイト文字を定数として利用できたような気がするので、言うほどすごい機能でもありません。\(friendlyWelcome)")文字を出力するときには、println関数を使います。Interpolation)されます。*/他のプログラミング言語と全く同じなので特に言うことはありません。一行コメントは「//」で始まり行末まで、複数行コメントは「/*」から始まり「*/」までです。7.セミコロンステートメント毎に改行されている場合には不要だそうで、仕様はjavascriptと同一。逆にセミコロンを書けば、一行に複数の文を書くこともできます。このSwift自体のコンセプトに、プログラミングをより学びやすくするということが入っているようなので、セミコロンを基本書かなくてよくするというのはそういった意味合いも含んでいる8.オプション型さて、ここら辺からがSwiftのSwiftらしいところですが、Maybe型やNullable型に相当するものです。全ての型の末尾に「?」をつけることによって、その型の「オプション型」という別の型を作ることができます。文字列の中から特定の文字や文字列を探し出すindexOf関数を例にとってみます。このindexOf関数は、一つの文字列を引数にとり、Int型を返すものとします。(※実際のSwift関数ではありません!)対象の文字が見つからなかった場合には、一般的に-1などの例外的な値を返し、利用者が-1でないかどうかを確認した上で、エラー処理や正常系の処理を行います。それでは、例えば利用者が-1かどうかのチェックを忘れてしまった場合にバグを生む原因になってしまいます。このオプション型を利用すると、このindexOf関数は下記のように利用することになります。\(found)")}このとき、indexはInt?型であり、foundはInt型であるという違いに注目してください。int?型はint型であるか、もしくはnilです。Int?型を数値のように利用しようとすると、コンパイルエラーが発生します。indexとすることで、Int?型がInt型の値を持っているかどうかを確認し、持っていた場合にはその値を新しくfoundと名付け直した上で、中括弧の中身を実行することになります。強制的にオプション型を元の型に戻したいときには、「!」を追加します。この例で言えば、index!とすることで、Int?型のindexをInt型として利用することができます。このとき、Int型の値を持たなかった場合には、そのステートメントは無視されることになります。オプション型編を参照してください。採用されることがWWDCのKeynoteにて発表されました。リファレンスを読んだ印象では、Haskellなどの関数型言語の影響をたぶんに受けているように感じます。変数編さて、Appleより新しくリリースされたSwift言語ですが、早速解説を書いていきたいと思います。この章では、変数の宣言やその他基本的な要素に関して一つずつ見ていきます。コレクション編SwiftにはArrayとDictionaryの2つのコレクション型があります。試しに作ってみました。Azureの仮想マシンのリージョン変更をする方法もはやSwiftではないですが、いろいろとハマったのでメモ。Azureがいつの間にやら日本リージョンでも仮想マシンを立てられるようになっていたので、東アジアリージョンに設置していたマシンを移行してみました。パターンマッチ編Swiftに導入されたモダンな機能の一つに、パターンマッチがあります。これは、switch文などのなかで、変数の状態によって場合分けを行うために多く用いられます。Nexusの関連ファイルで、maguroがGSM/HSPA+、toroがCDMA/LTEのカスタマイズ。tunaがその共通部分。久しぶりにXcodeをアップデートしてSwiftを触ってみると、だいぶ以前と感触が違っていて驚き。アップデートされてより良い言語になっているのであろうけれども、ちょっとブランクがある好きに全く違う言語になってしまうのは少々厳しいところ。