我希望以下代码由于过期而无法编译,但它可以工作。
fn main() {
let x;
{
let y = &13;
x = y;
}
println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)
fn main() {
let x;
{
let y = &13;
x = y;
}
println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)
复合类型的相同示例会按照我的意愿引发错误。
fn main() {
let x: &Box<i32>;
{
let y = &Box::new(13);
x = y;
}
println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)
13
Run Code Online (Sandbox Code Playgroud)
一个典型的活生生的例子也给出了一个错误:
fn main() {
let x;
{
let y = 13;
x = &y;
}
println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)
fn main() {
let x: &Box<i32>;
{ …Run Code Online (Sandbox Code Playgroud)