Введение
В этом лабораторном задании мы исследуем аннотацию сроков жизни в методах трейтов, которая аналогична функциям. Также она включает в себя аннотацию сроков жизни в блоке impl. Приведенный код демонстрирует пример, в котором структура Borrowed имеет аннотацию срока жизни, и для нее реализуется трейт Default с использованием аннотированного срока жизни. Затем в главной функции создается экземпляр Borrowed с использованием метода Default::default(), демонстрируя использование сроков жизни в методах трейтов.
Примечание: Если лабораторное задание не задает имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать
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, чтобы улучшить свои навыки.