SwiftUIの構造体(Struct)について

よくわからなかったのだが、わかってくると色々面白いことがわかった。自分で構造体を定義すると、Xcodeで理解してくれる。コード補完までしてくれるのでなかなかいい。

Personという構造体を作ってみると、ちゃんとコード補完をしてくれる。以下がコードの例である。

import SwiftUI

struct ContentView: View {

    var body: some View {

        let person1 = Person(lastName: "鈴木", firstName: "太郎", age: 62)

        let person2 = Person(lastName: "上野", firstName: "一郎", age: 62)

//        varで書いていたら変更しないからletにしろと注意された。

        VStack {

            Image(systemName: "globe")

                .imageScale(.large)

                .foregroundColor(.accentColor)

            Text("Hello, world!")

            Text("氏名:\(person1.lastName)")

            Text("氏名:\(person2.shimei())")

        }

        .padding()

    }

}

struct Person {

    var lastName: String

    var firstName: String

    var age: Int

    func shimei() -> String {

        return lastName + " " + firstName

//    initがない

    }

//    ここで補完機能を使うとlastName等がPでプロパティ

//    shimeiがMでメソッドで出てくる。いずれも青

}

struct Personで構造体を定義すると、bodyの中でPersonと書くとコード補完でvarで定義したlastName,firstName,ageが表示される。また、person1.と点を打つとコード補完でちゃんとlastNameとか選択できるように表示される。initを書かないと出ないのかと思った。かってにinitする全項目イニシャライザというのだそうだ。すごい。

ついでに、コード中にも書いたが、最初person1をvarで書いたが、しばらくすると「どこでも使ってない」と言われ、それなら「letにしろ」と言われボタン一発でletに変更できた。大きなお世話であるが、なかなかである。楽しい。