Итак, я спрашиваю, в чем разница между типами возвращаемых данных, & std :: vec :: Vec и std :: vec :: Vec?Просто любопытно.Если я делаю ссылку на что-то, я не создаю новый тип.Он по-прежнему сохраняет свои данные и структуру и поэтому сохраняет свой тип.Но по какой-то причине я получаю эту ошибку:
error[E0308]: mismatched types
--> src/cam.rs:170:3
|
168 | pub fn index2d(self, x: usize, y: usize) -> Vec<u8> {
| ------- expected `std::vec::Vec<u8>` because of return type
169 | let c = &self.pyxels[y*WIDTH+x];
170 | c
| ^
| |
| expected struct `std::vec::Vec`, found reference
| help: try using a conversion method: `c.to_vec()`
|
= note: expected type `std::vec::Vec<u8>`
found type `&std::vec::Vec<u8>`
^ (umm excuse me?)
Этот маленький символ (&) действительно имеет значение, и я понятия не имею, почему.