История изменений
Исправление
kirk_johnson,
(текущая версия)
:
Ну тупым тут оказался вовсе не я. Ты второй с тем же неправильным ответом. Правильный - в постах MyTrooName.
Чо, правда, да? Смотри:
$ cat src/main.rs
struct A<'a> {
x: &'a i32
}
impl<'a> A<'a> {
fn get(&self) -> &i32 {
self.x
}
}
fn foo(a: A) -> &i32 {
a.get()
}
fn main() {
let x = 0;
let s = A { x: &x };
println!("{}", foo(s));
}
$ cargo build
Compiling t v0.1.0 (/tmp/t)
error[E0515]: cannot return value referencing function parameter `a`
--> src/main.rs:12:5
|
12 | a.get()
| -^^^^^^
| |
| returns a value referencing data owned by the current function
| `a` is borrowed here
error: aborting due to previous error
For more information about this error, try `rustc --explain E0515`.
error: Could not compile `t`.
To learn more, run the command again with --verbose.
Только не отмазывайся, что не знаешь английского, ок?
Исходная версия
kirk_johnson,
:
Ну тупым тут оказался вовсе не я. Ты второй с тем же неправильным ответом. Правильный - в постах MyTrooName.
Чо, правда, да? Смотри:
$ cargo build
Compiling t v0.1.0 (/tmp/t)
error[E0515]: cannot return value referencing function parameter `a`
--> src/main.rs:12:5
|
12 | a.get()
| -^^^^^^
| |
| returns a value referencing data owned by the current function
| `a` is borrowed here
error: aborting due to previous error
For more information about this error, try `rustc --explain E0515`.
error: Could not compile `t`.
To learn more, run the command again with --verbose.
Только не отмазывайся, что не знаешь английского, ок?