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に変更できた。大きなお世話であるが、なかなかである。楽しい。