導入
「ユーザー=名前+年齢」「商品=名前+価格」。関連する値をひとまとめにした自分専用の型が struct(構造体) です。SwiftUIの画面もモデルも、struct が主役です。
説明
struct にプロパティ(保持する値)とメソッド(振る舞い)を書きます。
struct User {
var name: String
var age: Int
func introduce() -> String {
return "\(name)(\(age)歳)"
}
}
var user = User(name: "田中", age: 28)
print(user.introduce())
user.age = 29
print(user.age)
User(name:age:) のように、プロパティ名がそのまま初期化の引数になります(メンバーワイズイニシャライザ)。
計算で求まる値は 計算プロパティ にできます({ } の中で計算して返す)。
struct Rect {
var width: Double
var height: Double
var area: Double { width * height } // 計算プロパティ
}
let r = Rect(width: 3, height: 4)
print(r.area) // 12.0
structは 値型 です。コピーすると中身も別物になり、片方を変えてももう片方に影響しません。SwiftUIはこの性質を前提に設計されています。
やってみよう
User に好きなプロパティ(例:var hobby: String)を足して、introduce() の文面に組み込んでみましょう。
演習
struct Book { var title: String; var price: Int } を作り、Book(title: "Swift入門", price: 2000) の price を print してください。
ヒント1を見る
let book = Book(title: "Swift入門", price: 2000)
ヒント2を見る
print(book.price)