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

Методы struct

Методы в Rust - это функции, которые объявляются внутри блока impl для конкретной структуры. Первым параметром метода всегда идёт self, который представляет экземпляр структуры. Параметром метод может принимать &self (заимствование), &mut self (изменяемое заимствование) или self (владение). Методы вызываются через точку: instance.method.

Синтаксис

impl StructName { fn method_name(&self, param: Type) -> ReturnType { // body } }

Пример

Давайте создадим структуру Rectangle с полями width и height, а затем определим метод area, который вычисляет площадь:

struct Rectangle { width: u32, height: u32, } impl Rectangle { fn area(&self) -> u32 { self.width * self.height } } fn main() { let rect = Rectangle { width: 10, height: 5 }; let res = rect.area(); println!("{}", res); }

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

50

Пример

Давайте добавим метод scale, который изменяет размеры прямоугольника. Для этого используем &mut self:

struct Rectangle { width: u32, height: u32, } impl Rectangle { fn scale(&mut self, factor: u32) { self.width *= factor; self.height *= factor; } fn area(&self) -> u32 { self.width * self.height } } fn main() { let mut rect = Rectangle { width: 10, height: 5 }; rect.scale(2); let res = rect.area(); println!("{}", res); }

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

200

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

  • ключевое слово impl,
    которое используется для определения методов структуры
  • ключевое слово Self,
    которое ссылается на текущий тип внутри impl
  • параметр &self,
    который передаёт заимствованный экземпляр структуры
  • ассоциированные функции associated functions,
    которые не принимают self и вызываются через ::
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить