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"),
        }
    }
}

有可能解决这个问题吗?

您好!我把你的答案记为重复。如果链接问答没有回答您的问题,请让我们知道,以便我们可以重新打开此问题!简而言之:不,不可能返回对局部变量(或临时变量,如您的情况)的引用。不管引用是直接返回还是在另一个结构中返回(比如在您的例子中),请参阅应用该结构,您的代码可能应该是这样的。