fn add(&mut self, value: i32) {
let next = Link::new(value);
if let Some(ref last) = self.last {
last.borrow_mut().next = next.clone();
} else {
self.root = next.clone();
}
self.last = next;
}
Вообще люди из ML языков находят в расте много знакомого, кто раньше писал на скале — тоже.
Мне после JavaScript замыканий почему-то многие базовые концепты из раста очень легко дались.
Можно ещё так:
Вообще горячий топик
https://github.com/Microsoft/TypeScript/issues/202
zharko_mi интересные первые впечатления, спасибо за статью.
это ссылка, значение по ссылке менять можно
В первом примере если заменить
на
то можно будет писать None вместо Box::new(None)
А ещё можно делать так:
Удобно для конструкторов:
Пример со списком можно немного аккуратнее сделать (ссылка на плэйграунд):
Вообще люди из ML языков находят в расте много знакомого, кто раньше писал на скале — тоже.
Мне после JavaScript замыканий почему-то многие базовые концепты из раста очень легко дались.