データ構造とライフタイム

データ型が借用データを内部に保持する場合、ライフタイムアノテーションを付ける必要があります。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 5 minutes.
  • 上記の例では、Highlight のアノテーションにより、内包される&str の参照先のデータは、少なくともそのデータを使用する Highlight のインスタンスが存在する限り存続しなければならなくなります。
  • fox(または dog)のライフタイムが終了する前に text が使用されると、借用チェッカーはエラーをスローします。
  • 消費したデータが含まれる型では、ユーザーは元のデータを保持せざるを得なくなります。これは軽量のビューを作成する場合に便利ですが、一般的には使いにくくなります。
  • 可能であれば、データ構造がデータを直接所有できるようにします。
  • 内部に複数の参照がある構造体には、複数のライフタイム アノテーションが含まれる場合があります。これが必要になるのは、構造体自体のライフタイムだけでなく、参照同士のライフタイムの関係を記述する必要がある場合です。これは非常に高度なユースケースです。