はじめに
この実験では、関数と同様に、トレイトメソッドにおける寿命注釈を調べます。これには、impl ブロックにおける寿命注釈も含まれます。提供されたコードは、構造体 Borrowed に寿命注釈があり、それを使用して Default トレイトが実装されている例を示しています。その後、メイン関数は Default::default() メソッドを使用して Borrowed のインスタンスを作成し、トレイトメソッドにおける寿命の使用方法を示しています。
注: 実験でファイル名が指定されていない場合、好きなファイル名を使用できます。たとえば、
main.rsを使用して、rustc main.rs &&./mainでコンパイルして実行できます。
トレイト
トレイトメソッドにおける寿命注釈は基本的に関数と同じです。impl にも寿命注釈があることに注意してください。
// 寿命注釈のある構造体。
#[derive(Debug)]
struct Borrowed<'a> {
x: &'a i32,
}
// impl に寿命を注釈付けする。
impl<'a> Default for Borrowed<'a> {
fn default() -> Self {
Self {
x: &10,
}
}
}
fn main() {
let b: Borrowed = Default::default();
println!("b is {:?}", b);
}
まとめ
おめでとうございます!あなたはトレイトの実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。