РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
553 of 1245 menu

Трейт Default

Трейт Default определяет метод default, который возвращает значение по умолчанию для типа. Этот трейт часто используется для инициализации структур, когда не все поля известны заранее, а также в различных контейнерах и умных указателях. Метод не принимает параметров и возвращает Self.

Синтаксис

trait Default { fn default() -> Self; }

Пример

Давайте создадим значение по умолчанию для целого числа и строки:

fn main() { let num: i32 = Default::default(); let text: String = Default::default(); println!("{}", num); println!("{:?}", text); }

Результат выполнения кода:

0 ""

Пример

Давайте создадим собственную структуру и реализуем для неё трейт Default:

#[derive(Debug)] struct Point { x: i32, y: i32, } impl Default for Point { fn default() -> Self { Point { x: 10, y: 20 } } } fn main() { let p: Point = Default::default(); println!("{:?}", p); }

Результат выполнения кода:

Point { x: 10, y: 20 }

Пример

Давайте используем метод unwrap_or_default, который возвращает значение по умолчанию, если в Option ничего нет:

fn main() { let some: Option<i32> = None; let res = some.unwrap_or_default(); println!("{}", res); }

Результат выполнения кода:

0

Смотрите также

  • трейт Trait,
    который описывает общее поведение типов
  • конструкция impl for,
    которая реализует трейт для типа
  • трейт Copy,
    который позволяет копировать значения
  • трейт PartialEq,
    который позволяет сравнивать значения на равенство
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить