我有一些伪代码检查变量是否null:
Test test;
if (test == null) {
test = new Test();
}
return test;
Run Code Online (Sandbox Code Playgroud)
我怎么在Rust做这样的事情?这是我到目前为止的尝试:
struct Test {
time: f64,
test: Test,
}
impl Test {
fn get(&self) -> Test {
if self.test == null {
// <--
self.test = Test { time: 1f64 };
} else {
self.test
}
}
}
Run Code Online (Sandbox Code Playgroud)
quo*_*ian 14
在运行时无法检测到未初始化的变量,因为编译器不会让您走得那么远.
但是,如果您希望存储可选值,则该Option<...>类型非常方便.然后,您可以使用match或if let语句来检查:
let mut x: Option<f32> = None;
// ...
x = Some(3.5);
// ...
if let Some(value) = x {
println!("x has value: {}", value);
}
else {
println!("x is not set");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3802 次 |
| 最近记录: |