возвращает Self. В моём понимании это должно быть примерно как в не закомментированном куске кода, но погуглив я пришёл ко второму и видимо он верный НО. Это же создание новой структуры? На мой взгляд так не верно, в общем как правильно должно быть?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=e44b616d801481da0aa33c2dd68c97ce
Единственный верный вариант - создать новый экзембляр структуры (как раз как в закомментированном куске), потому что: 1) метод возвращает Self, т.е. надо вернуть владение над каким-то экзембляром 2) метод принимает &self, и значит ничего не может в нем менять Если менять сигнатуру нельзя, то правильно как в закомментированном куске Если можно, я бы сделал так скорее: fn add(mut self, v: u32) -> Self { self.val += v; self }
Обсуждают сегодня