やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rustのライフタイム2(構造体の定義)

 構造体のフィールドに参照をもたせる。

成果物

参考

構造体の定義(ライフタイムの明示)

#[derive(Debug)]
pub struct Text<'a> {
    part: &'a str,
}
fn main() {
    let text = Text { part: "ABC" };
    println!("{:?}", text); // Text { part: "ABC" }
}

 <'a>の注釈は、その構造体Textインスタンスが、フィールドpartに保持している参照よりも長生きしないことを意味する。

 今まで構造体のメンバには参照を使えなかった。文字列ならString型は使えるが&str型は使えなかった。それが、今回ライフタイム明示によって使えるようになった。

pub struct Text {
    part: &str, // error[E0106]: missing lifetime specifier
}

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで