В Rust, зачем-то запихали классы. Видимо для того, что бы было “как у всех”. Ощущения от классов, мягко говоря, противоречивые. Хотя в рассылке и утверждают, что с тем, как классы будут выглядеть еще не определились, но ничто так не постоянно, как все временно. Итак, выглядит это дело следующим образом:
priv {
let mut val: int;
}
new(val: int) {
self.val = val;
}
fn foo() {
self.val += 1;
io::println(#fmt("val+1 == %d", self.val));
}
}
fn main() {
let obj = test_class(10);
obj.foo();
}
Любой класс должен иметь конструктор, в противном случае, компилятор скажет что-то типа следующего:
В то же время, никаких подтверждений наличию деструкторов я не нашел. Полагаю, будут, но позже, а сейчас можно воспользоваться типом resource, пусть и будет выглядеть итоговое решение крайне криво.
Вторая не понравившаяся особенность классов, необходимость использовать self для доступа к членам из функций классов. Так же self используется для доступа к функциям класса, что выглядит как некий атавизм.
А в целом… Ну, классы, такие классы…