Изучение структур Rust: концепции объектно-ориентированного программирования

Да, Rust поддерживает концепции объектно-ориентированного программирования, но у него нет встроенной поддержки традиционных классов, подобных тем, которые есть в таких языках, как C++ или Java. Вместо этого Rust предоставляет функцию под названием «структуры», которую можно использовать для определения пользовательских типов данных с соответствующими методами и поведениями.

Вот пример того, как можно определить структуру в Rust:

struct Rectangle {
    width: u32,
    height: u32,
}
impl Rectangle {
    fn new(width: u32, height: u32) -> Rectangle {
        Rectangle { width, height }
    }
    fn area(&self) -> u32 {
        self.width * self.height
    }
    fn is_square(&self) -> bool {
        self.width == self.height
    }
}
fn main() {
    let rect = Rectangle::new(10, 20);
    println!("Area: {}", rect.area());
    println!("Is square? {}", rect.is_square());
}

В этом примере мы определяем структуру Rectangleс полями widthи height. Затем мы используем блок implдля определения методов, связанных со структурой Rectangle. Метод new— это конструктор, создающий новый экземпляр Rectangle. Метод areaвычисляет площадь прямоугольника, а метод is_squareпроверяет, является ли прямоугольник квадратом.

Чтобы использовать эти методы, мы создаем новый экземпляр Rectangle, используя метод new, и вызываем методы этого экземпляра.