-1
我々はここでthis code:Rustのイニシャライザリストの別の値で値を初期化する方法は?例えば
use std::rc::Rc;
struct B;
struct A {
obj: Rc<B>,
}
impl A {
fn new(obj: Rc<B>) -> A {
A {
obj: obj,
}
}
}
struct C {
b: Rc<B>,
a: A,
}
impl C {
fn new() -> C {
C {
b: Rc::new(B),
a: A::new(b.clone()),
}
}
}
fn main() {
}
がかかることがあり、私は同じ初期化子リスト内の別の値で初期化したいa
呼ばA
構造体のメンバです。私はそれはので、私は通常、それを行うにはOption<T>
を使用可能ではないと思います。
use std::rc::Rc;
struct B;
struct A {
obj: Rc<B>,
}
impl A {
fn new(obj: Rc<B>) -> A {
A {
obj: obj,
}
}
}
struct C {
b: Rc<B>,
a: Option<A>,
}
impl C {
fn new() -> C {
let mut c = C {
b: Rc::new(B),
a: None,
};
c.a = Some(A::new(c.b.clone()));
c
}
}
fn main() {
}
しかし、私はここに役に立たない余分な作業を行うと、後で私は常にこのオプションをアンラップする必要があるので、私の意見では、これは愚かです。これをもっと簡単にする方法はありますか?
ハハ、あなたは私の一日を作った。なぜ私はそれを以前にやったのか分からない。 –