История изменений
Исправление Aswed, (текущая версия) :
Ну тогда я все правильно сказал. Раст из коробки умеет в ооп, а ты не разобрался. Вот смотри ООП это у нас что
1 Наследование: trait Child: Parent
2 Инкапсуляция:
impl Foo {
pub fn public_method(&self) {}
fn private_method(&self) {}
}
3 Полиморфизм:
struct Dog {}
struct Cat {}
trait Animal {
fn hello(&self) -> &'static str;
}
impl Animal for Dog {
fn hello(&self) -> &'static str {"bark"}
}
impl Animal for Cat {
fn hello(&self) -> &'static str {"meow"}
}
fn main() {
let animals: Vec<Box<dyn Animal>> = vec![
Box::new(Dog{}), Box::new(Cat{})
];
for x in animals {
println!("{}", x.hello())
}
}
ШОК! СЕНСАЦИЯ! ПРОГРАММИСТ ПИШЕТ ОО КОД НИ РАЗУ НЕ ИСПОЛЬЗОВАВ СЛОВО КЛАСС! СМОТРЕТЬ ПОЛНОСТЬЮ ПО ССЫЛКЕ!
Исходная версия Aswed, :
Ну тогда я все правильно сказал. Раст из коробки умеет в ооп, а ты не разобрался. Вот смотри ООП это у нас что
1 Наследование: trait Child: Parent
2 Инкапсуляция:
impl Foo {
pub fn public_method(&self) {}
fn private_method(&self) {}
}
3 Полиморфизм:
struct Dog {}
struct Cat {}
trait Animal {
fn hello(&self) -> &'static str;
}
impl Animal for Dog {
fn hello(&self) -> &'static str {"bark"}
}
impl Animal for Cat {
fn hello(&self) -> &'static str {"meow"}
}
fn main() {
let animals: Vec<Box<dyn Animal>> = vec![
Box::new(Dog{}), Box::new(Cat{})
];
for x in animals {
println!("{}", x.hello())
}
}
ШОК! СЕНСАЦИЯ! ПРОГРАММИСТ ПИШЕТ ОО КОД НИ РАЗУ НЕ ИСПОЛЬЗОВАВ СЛОВО КЛАСС! СМОТРЕТЬ ПОЛНОСТЬЮ ПО ССЫЛКЕ!