Rustのlifetime
<'a>は「tick A」と発音するらしい
2種類ある
値のライフタイム
値が構築されてから破棄されるまでの期間
いわゆる値のスコープのこと
参照のライフタイム
値への参照が使用される期間
Rustの参照がダングリングポインタにならないようにするために、参照の生存期間を型で表現する ただの型なのでコンパイル時にチェックするだけで、実行時に影響は与えない
「型」のイメージ通り、指定された生存期間よりも、長い期間生存する参照しか受け付けない
つまり、型で表現されている生存期間は、必要とする生存期間の最短値になっているのかmrsekut.icon
開始してから終了するまでの期間を表している
例
code:rs
fn f<'a>(p: &'a i32) { ... }
関数fの生存期間より短い生存期間であるi32型への参照のみを引数に取ることができる
例
code:rs
fn f(p: &'static i32) { ... }
生存期間が'staticと同じ期間あるi32への参照のみを引数に取ることができる
参考