🐥
SwiftUIの\.self について
SwiftUIでよく見る.self
という記述、具体的にはid: \.self
のような形で使用されることが多いですね。それでは、この.self
が何を意味しているのか、そしてなぜSwiftUIでよく使われるのかを説明していきましょう。
1. .self とは何か
.self
はSwiftのキーパス表記で、オブジェクト自体を指します。そして、\
はそのキーパスを示すためのプレフィックスとなります。
例えば、ある配列 let numbers = [1, 2, 3]
があるとき、numbers[0].self
と記述すると、このself
は「numbers[0]
自体」という意味になります。つまり、その値は1
です。
2. SwiftUIでの.selfの利用
では、なぜSwiftUIで.self
がよく使われるのかというと、それはSwiftUIがビューを管理する方法に関係しています。
SwiftUIでは、ビューの状態を追跡するために、各ビューに一意のIDが必要です。そして、その一意のIDを提供する方法の一つが\.self
を使用する方法です。
具体的には、ForEach
、List
などのビューで、コレクションの各要素をループして処理する際に、各要素を一意に識別するためのIDとして、その要素自体(つまりその.self
)を使用することができます。
以下に例を示します:
ForEach(0..<5, id: \.self) { number in
Text("Number is \(number)")
}
このコードは0から4までの数値をループし、それぞれについてテキストビューを生成します。そして、各テキストビューを一意に識別するためのIDとして、それぞれの数値自体を使用しています。
このように、.self
はSwiftUIでのビュー生成と管理にとても重要な役割を果たしています。
Discussion