タグ

ブックマーク / tea-leaves.jp (4)

  • 型キャスト | Swift言語を学ぶ

    型キャストとは継承ツリーの中のあるスーパークラスの変数を、そのサブクラスのインスタンスと看做せるか判定したり、変換したりする仕組みの事をいいます。 言語によっては、異なる型間での変換(例えば、整数と浮動小数点数等)も型キャストと呼ぶ場合がありますが、Swiftでは、基的に同じベースクラスをスーパークラスにもつ型同士で扱われます。 例として、以下の様なGUIコントロールのベースクラスを継承する、ラベル、ボタン、テキストボックスを使って説明します。 /* GUIコントロール */ class GUIControl { var x, y, width, height: Float // 位置と幅、高さ // イニシャライザ init(x: Float, y: Float, width: Float, height: Float) { self.x = x self.y = y self.wid

    g08m11
    g08m11 2016/02/26
  • 制御文 | Swift言語を学ぶ

    if文は次のような構造になります。 if 条件1 { 条件1がtrueの場合に実行する処理 } else if 条件2 { 条件2がtrueの場合に実行する処理 : } else { 上のどの条件にも合致しなかった場合に実行する処理 } if文の条件はtrueかflaseを返すBool型でなければなりません。Int型や文字列型等はif文の条件として直接使用することはできません。 {と}は必須です。else以降は不要なら省略できます。条件の前後を(と)で囲む必要はありませんが、囲むこともできます。 var engine: Int? // 排気量 if engine <= 50 { print("原付バイク") } else if engine <= 125 { print("小型バイク") } else if engine <= 400 { print("中型バイク") } else { p

    g08m11
    g08m11 2016/01/12
  • クラス | Swift言語を学ぶ

    クラスはオブジェクト指向の根幹をなすもので、簡単に言うと変数と関数をまとめたものです。 Swiftでは、クラスは次の様に宣言します。 /* モンスタークラス */ class Monster { var level = 1 // レベル var name: String? // 名前 // 説明 func description() -> String { if name == nil { return "不明 Lv.\(level)" } else { return "\(name!) Lv.\(level)" } } } Swiftのクラス定義はC++やObjective-Cのようにヘッダファイルと実装ファイルを分ける必要はありません。通常は1つのswiftファイルにクラスの定義と実装内容をまとめて記述します。 Swiftのクラス名は、次の様にアッパーキャメルケース(最初の文字とその後

    g08m11
    g08m11 2015/12/08
  • 構造体 | Swift言語を学ぶ

    カプセル化を実現する方法としてSwiftには、クラスの他に構造体(struct)が用意されています。但し、クラスと構造体には次のような違いがあります。 構造体では継承は利用できません。 構造体にデイニシャライザは定義できません。 クラスのインスタンスを別の変数に代入すると参照が渡されます。インスタンスの参照数は参照カウントで管理されます。対して構造体を別の変数に代入すると新たなコピーが生成されます。構造体の参照先は常に1つなので参照カウントは使用されません。 構造体の書き方はクラスとよく似ています。 /* 著者 */ struct Author { var name: String = "不明" var birthday: NSDate? // NSDateはCocoaフレームワークの日付型 } let author = Author() イニシャライザを使ってメンバ変数を初期化することも

  • 1