SwiftUI | static の意味と使い方

SwiftUI

SwiftUI の static の意味と使い方を説明する。

結論

変数宣言時に static を付けると変数の値が固定値となる。

具体例

以下のAppを例に説明する。

  1. structで各職業の入れ物を作る。各職業ごとのキャラの画像は同じで良いので、変数 画像static を付けて画像を設定する。
  2. 各キャラのインスタンスを生成する。男ゆうしゃ1人と女まほうつかい3人のパーティ編成とした。
  3. 各キャラの画像とステータスを表示する。 キャラの画像は職業ごとに固定としているのでまほうつかいの3人は同じ画像を表示する。staticの変数を使うときはstruct名.変数名と記述する。
import SwiftUI

struct ゆうしゃ {
    static let 画像 = Image("ゆうしゃの画像")  // ?1
    let なまえ: String
    var レベル: Int
    var HP: Int
    var MP: Int
}

struct まほうつかい {
    static let 画像 = Image("まほうつかいの画像")  // ?1
    let なまえ: String
    var レベル: Int
    var HP: Int
    var MP: Int
}

struct ContentView: View {
    
    var ヨシヒコ = ゆうしゃ(なまえ: "ヨシヒコ", レベル: 42, HP: 500, MP: 50)  // ? 2
    var りか = まほうつかい(なまえ: "りか", レベル: 37, HP: 200, MP: 350)
    var ごまき = まほうつかい(なまえ: "ごまき", レベル: 36, HP: 400, MP: 250)
    var みきてぃ = まほうつかい(なまえ: "みきてぃ", レベル: 37, HP: 350, MP: 300)

    var body: some View {

        HStack {
            VStack {
                ゆうしゃ.画像                      // ? 3
                Text("\(ヨシヒコ.なまえ)")
                Text("HP : \(ヨシヒコ.HP)")
                Text("MP : \(ヨシヒコ.MP)")
                Text("レベル : \(ヨシヒコ.レベル)")
            }
            VStack {
                まほうつかい.画像                   // ? 3
                Text("\(りか.なまえ)")
                Text("HP : \(りか.HP)")
                Text("MP : \(りか.MP)")
                Text("レベル : \(りか.レベル)")
            }
            VStack {
                まほうつかい.画像                   // ? 3
                Text("\(ごまき.なまえ)")
                Text("HP : \(ごまき.HP)")
                Text("MP : \(ごまき.MP)")
                Text("レベル : \(ごまき.レベル)")
            }
            VStack {
                まほうつかい.画像                   // ? 3
                Text("\(みきてぃ.なまえ)")
                Text("HP : \(みきてぃ.HP)")
                Text("MP : \(みきてぃ.MP)")
                Text("レベル : \(みきてぃ.レベル)")
            }
        }
    }
}

まとめ

SwiftUI の static の意味と使い方を説明した。

コメント

タイトルとURLをコピーしました