// dictionary
ライフタイム(Lifetime).
ライフタイム(Lifetime)
借用(Borrowing)された値の有効期限をコンパイラに明示するためのアノテーションです。関数やstructで参照を使う場合、ライフタイムを指定することでコンパイラが参照の安全性を検証できます。
基本的な使用方法
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
ライフタイムアノテーションの詳細
'a は汎用ライフタイムパラメータです。この記法は「戻り値の参照は、入力の参照と同じ生存期間を持つ」という情報をコンパイラに提供します。
複数のライフタイムパラメータを使うこともできます:
fn foo<'a, 'b>(x: &'a str, y: &'b str) -> &'a str {
x
}Struct のライフタイム
struct Message<'a> {
text: &'a str,
}
fn main() {
let s = String::from("hello");
let m = Message { text: &s };
}
この辞書が使われているページ
backlinks 3