intValue25行目と7行目は予想通りコンパイルエラーとなりました。9行目はIntにDoubleを代入するのも当然コンパイルエラーとなりました。DoubleにIntを代入する時には暗黙の型変換されるのが普通(少なくともJavaはそう)なのですが、コンパイルエラーとなります。これが数値型におけるSwiftの仕様の注意点です。右辺と左辺で型の異なる代入は全てコンパイルエラーとなります。//数値型のリテラルは暗黙の変換がOKな代入はOK、intValue2は3がセットされる。100//数値型のリテラルは暗黙の変換がOKな代入はOK、intValue2は3がセットされる。数値型への代入に関しては右辺がリテラルだけの場合は暗黙の型変換が行われます。右辺にも変数が絡んでくる場合は暗黙の型変換は行われないので注意が必要です。(右辺が四則演算になっている場合)コレクション型Array基本的にObjective-CのNSMutableArrayクラスに相当の型と考えていただいて問題ないですが、ジェネリクス対応がなされています。Javaのジェネリクス対応のリストと同じですね。・Arrayの宣言方法Stringの要素で構成される配列:Arrayの宣言方法は以下のようになります。“要素の値3”]また他の変数と同様に型を明示して宣言することも可能です。以下の例だとStringを要素とするArrayと指定しています。Arrayの変数名[i]でi番目の要素が参照可能です。Arrayの変数名[i...j]でi番目からj番目の要素を持つ部分配列に相当する物が取得可能です。2014年11月25日修正と言っても実際にはこの時取得できるオブジェクトはSliceという物でArrayではありまん。Arrayとして取得するにはArray(変数名[i...j])と記述する必要があります。ここまでをテストメソッドで確認してみます。"要素の値4"])}予想通りテストは成功しました。・要素の追加、更新、削除この処理のポイントはArrayにArrayを追加できる。Arrayの任意の部分を指定Arrayで更新できることぐらいです。他の処理は他の言語と同じ考え方でOKです。0);}Dictionary基本的にObjective-CのNSMutableDictionaryクラスに相当の型と考えていただいて問題ないですが、ジェネリクス対応がなされています。Javaのジェネリクス対応のHashMapと同じですね。右辺の値で暗黙的に解決させることもできます。"2":"2の値"]}・Optional型Dictionaryの話題とは直接関係ないのですがSwiftにはOptional型という物があります。Dictionaryのキーに対する値を取得した場合は必ずこのOptional型になります。結局はnilじゃなかったらって判定がどこかで入るので意味ないような気がしますが・・・Swiftの変数にはnilを代入することはできません。nilを代入できるようにするためにOptional型を利用します。Optional型にする場合は、変数宣言時の型の後ろに?を付与します。OptionalのT:テンプレートに宣言したい型(IntやString等)を指定した型として宣言することでも可能です。Optional型の宣言例normalIntはOptional型ではないのでnilを代入できません(コンパイルエラー)wrapInt1とwrapInt2はIntのOptional型として宣言していますのでnilを代入できます。nil}wrapInt1とwrapInt2はOptional型でラップ(wrap)されていると表現します。逆にOptional型からアンラップ(unwrap)するには!を変数名の後ろに付与します。nil}6行目の右辺はwrapInt1の後ろに!がついています。!が無ければ型の推定でunwrapInt1はwrapInt1と同じInt?となりますが、!によってOptional型からアンラップされるのでunwrapInt1はIntと型が決まります。アンラップする時の注意点はnilでないかのチェックを事前に行うことです。Dictionaryの参照方法はDictionaryの変数名[キー]で行えます。取得した値はOptional型となりますので非nilチェックは必須です。//型はString?となる。2:"2の値"]//Dictionaryの参照方法はdic1[キー]で行う、下記の場合key1Valueには"1の値"が格納されるが//型はString?となる。"1の値")}・要素の追加、更新、削除この処理は全てDictionaryの変数名[キー]=で値を代入することで行えます。Dictionaryに指定したキーが存在しない場合は新規追加、存在する場合は値の更新、nilを代入すると指定したキーの削除となります。更新はupdateValueメソッド、削除はremoveValueForKeyでも行えます。0)}制御構文if文、for文、switch文、while文等が利用できます。基本的にはJavaとほぼ同じです。今回は概要ですのでサンプルコードのみとさせていただきます。注意点としてはswitchの各case文が暗黙的にbreakされることです。Java、C、C++、C#等は明示的にbreak命令を書かないとそのcase文以下の全てのcase文が実行されます。戻り値の有るメソッドの定義方法は以下のようになります。戻り値の型のように各引数名の前に半角スペースをはさんで外部引数名を指定します。(全ての引数に対して外部引数名を指定する必要はございません。)実装サンプルは以下のようになります。260)}あれ!?、8行目でコンパイルエラーが発生しています。callとなっています。value2には外部引数名を指定していないのでvalue2:は書かなくてもOKなはずですが、どこかで仕様変更があったのでしょうか?testFuncReturnValueSampleを以下のように変更するとコンパイルもテストも成功しました。戻り値の無いメソッドの定義方法は以下のようになります。{}クラス最後はクラスの定義方法です。基底クラスを指定しないクラスの定義クラスの定義方法は以下の通りです。基底クラスを指定した場合のクラスの定義方法は以下の通りです。実装...}今回は概要説明としていますので、インスタンスメンバを保持したクラスの定義例まで説明させていただきます。2つの変数と2つの定数を保持したクラスを定義します。Int}ソース内のコメントにも記載いますが、インスタンス変数、インスタンス定数の宣言時に初期値はセットする必要はないです。セットしてもいいです。上記のコードのみの場合はコンパイルエラーが発生します。initializersとなっています。これはinit()が存在しないとのエラーです。initializerは全てのクラスに必須な物ではありませんが、SomeClassは初期化されていない変数:value2と定数:value4が存在しているため、initializerでそれぞれを初期化する必要があります。空っぽのinit()を追加してみました。initializedとのエラーメッセージに変わりました。value4も同じ扱いだと思うのですが・・・value2とvalue4の初期化処理を追加したところコンパイルが成功しました。300}}なお、initializerはJavaのコンストラクタのように引数を指定することも可能です。以下の例では引数にvalue1とvalue2を指定できるようになっています。この場合value2は引数にもインスタンス変数にも存在するので、インスタンス変数のvalue2はself.value2と表現する必要があります。value2}最後にメソッドを追加し、そのメソッドを呼び出す処理を書いてみます。言ってもfuncReturnValueSampleメソッドをSomeClassにコピーしてSomeClassをインスタンス化しfuncReturnValueSampleメソッドを呼び出すようにするだけです。SomeClassは以下のようになりました。value2}}SomeClassをインスタンス化しfuncReturnValueSampleメソッドの呼び出しは以下のようになります。//SomeClassのインスタンス作成。{//SomeClassのインスタンス作成。260)}今回はSwiftの構成要素の必要最低限の説明のみとなっていますので、今後より詳細なエントリーを作成していく予定です。第一回「Swiftの概要」」は以上です。第二回「関数(メソッド)とクロージャーの利用方法」に続きます。Storeからダウンロードしインストール可能になりました。Swiftが利用できるXcode6の正式版がリリースされました。App記事を読むSwift入門[公式リファレンスのチュートリアルのSteps2の後半]「Swift入門」では、Steps2の前半まで説明させていただきました。]!が発生するそろそろQuickを利用しようと思いまたまたハマりました。コメントをキャンセルメールアドレスが公開されることはありません。*サイトPREV2014年の秋のAppleのプレスイベントがついに開催されました。seed」もついにリリースされました。Storeからダウンロードしインストール可能になりました。ENTRY動画で英語を学習できるiOSの無料アプリCapTubeをリリースいたしました。個人では初となるiOSアプリをリリースいたしました。前回はSwiftの概要をザックリと説明させていただきました。Mobile,Jasmine,JavaScript,Java,テスト駆動開発等)など扱っています。