April 3, 2023
Как выражаются классы на языке Rust?
В Rust, вместо классов, как в Java, используются структуры (struct) и реализации (impl). Структуры используются для определения полей, а реализации предоставляют методы для работы с ними. Это позволяет достичь аналогичного функционала и инкапсуляции, как и в объектно-ориентированных языках программирования. Вот пример определения класса на Java и его аналога на Rust:
Код на java:
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
struct Person { name: String, age: i32, } impl Person { fn new(name: String, age: i32) -> Person { Person { name, age } } fn get_name(&self) -> &String { &self.name } fn set_name(&mut self, name: String) { self.name = name; } fn get_age(&self) -> i32 { self.age } fn set_age(&mut self, age: i32) { self.age = age; } } fn main() { let mut person = Person::new("Alice".to_string(), 30); println!("Name: {}", person.get_name()); println!("Age: {}", person.get_age()); person.set_name("Bob".to_string()); person.set_age(35); println!("Updated name: {}", person.get_name()); println!("Updated age: {}", person.get_age()); }
В этом примере на Rust мы определяем структуру Person
с полями name
и age
, а также реализацию Person
с методами для работы с полями структуры. Затем в функции main
мы создаем экземпляр структуры Person
и демонстрируем использование методов для чтения и изменения полей.