面试题答案
一键面试use std::cell::OnceCell;
struct MyStruct {
value: OnceCell<i32>,
}
impl MyStruct {
fn get_value(&self) -> i32 {
self.value.get_or_init(|| {
// 这里进行初始化操作,例如计算一个值
42
})
}
}
你可以这样使用:
fn main() {
let my_struct = MyStruct {
value: OnceCell::new(),
};
let value1 = my_struct.get_value();
let value2 = my_struct.get_value();
assert_eq!(value1, 42);
assert_eq!(value2, 42);
}