История изменений
Исправление DarkEld3r, (текущая версия) :
как быть?
Покажи пример того, что тебе надо. Вообще чтобы возвращать ссылку надо гарантировать, что она будет жива после возврата из функции. Очевидно, что вот так написать нельзя:
fn foo() -> &i32 {
&10
}
fn f1(a: &i32) -> &i32 {
a
}
static N: i32 = 5;
fn f2() -> &'static i32 {
&N
}
struct Test {
a: i32,
}
fn f3(test: &Test) -> &i32 {
&test.a
}
struct T<'a, 'b> {
v1: &'a i32,
v2: &'b i32,
}
fn get_v1<'a, '_>(t: &T<'a, '_>) -> &'a i32 {
t.v1
}
А лучше почитай официальный мануал.
Исходная версия DarkEld3r, :
как быть?
Покажи пример того, что тебе надо. Вообще чтобы возвращать ссылку надо гарантировать, что она будет жива после возврата из функции. Очевидно, что вот так написать нельзя:
fn foo() -> &i32 {
&10
}
fn f1(a: &i32) -> &i32 {
a
}
static N: i32 = 5;
fn f2() -> &'static i32 {
&N
}
struct Test {
a: i32,
}
fn f3(test: &Test) -> &i32 {
&test.a
}
struct T<'a, 'b> {
v1: &'a i32,
v2: &'b i32,
}
fn get_v1<'a, '_>(t: &T<'a, '_>) -> &'a i32 {
t.v1
}