我有一个结构,其中包含对两个不同值的引用。有两个构造函数-一个构造函数每个值都引用一个,而一个构造函数只对其中一个值引用,而给另一个默认值。
我的问题是分配该默认值。请参见下面的代码:
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"),
}
}
}
无法编译:
error[E0515]: cannot return value referencing temporary value
--> src/lib.rs:12:9
|
12 | / Foo {
13 | | a,
14 | | b: &String::from("default"),
| | ----------------------- temporary value created here
15 | | }
| |_________^ returns a value referencing data owned by the current function
是否可以解决此问题?