Rust 返回对在方法中创建的值的引用的方法?
我有一个包含对两个不同值的引用的结构。有两个构造函数——一个为每个值引用,另一个为另一个值指定默认值时只引用其中一个值 我的问题是分配默认值。请参阅下面的代码:Rust 返回对在方法中创建的值的引用的方法?,rust,lifetime,ownership,Rust,Lifetime,Ownership,我有一个包含对两个不同值的引用的结构。有两个构造函数——一个为每个值引用,另一个为另一个值指定默认值时只引用其中一个值 我的问题是分配默认值。请参阅下面的代码: struct Foo<'t> { a: &'t String, b: &'t String, } impl<'t> Foo<'t> { fn new(a: &'t String, b: &'t String) -> Foo<'t&g
struct Foo<'t> {
a: &'t String,
b: &'t String,
}
impl<'t> Foo<'t> {
fn new(a: &'t String, b: &'t String) -> Foo<'t> {
Foo { a, b }
}
fn new_with_default_b(a: &'t String) -> Foo<'t> {
Foo {
a,
b: &String::from("default"),
}
}
}
有可能解决这个问题吗?您好!我把你的答案记为重复。如果链接问答没有回答您的问题,请让我们知道,以便我们可以重新打开此问题!简而言之:不,不可能返回对局部变量(或临时变量,如您的情况)的引用。不管引用是直接返回还是在另一个结构中返回(比如在您的例子中),请参阅应用该结构,您的代码可能应该是这样的。