Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
554 of 1246 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить