let s = {
struct S(i32);
impl S {
fn add_one(&self) -> i32 {
self.0 + 1
}
}
S(0)
};
(Компилится, но rust-analyzer не осиливает автодополнение s.add_one())
макросы, например
А еще?)
ну, если какой-то тип нужен только в одном выражении, наверное, хз а чем вызван вопрос
Прост. Удивила конструкция
эта конструкция — сочетание двух фактов 1. можно делать item statements (это нужно для хелпер-функций, которые по тем или иным причинам нельзя сделать замыканиями) 2. существуют block expressions (это в целом полезно)
А что из этого item statements?
struct и impl внутри функции — item statements это item (штуки, которые в норме на top level) находящиеся на месте statements (штуки, которые в норме заканчиваются на ;)
От оно чо. Зафиксировал. Благодарю
Но вернуть такое из функции ведь не получится, т.к. заранее неизвестен возвращаемый тип S ?
получится, но только через impl Trait
Обсуждают сегодня