< 返回版块

shanliu 发表于 2022-05-07 11:37

fn main() {
    let a=Some(11);
    let b=a.map(|a|{a as i64});
    let b=b.as_ref();
    println!("{:?}",b);
    //有没有不用手动定义临时变量办法,实现以下连续调用
    //let c=a.map(|a|{a as i64}).as_ref();
    //println!("{:?}",c);
}

评论区

写评论
作者 shanliu 2022-05-07 23:28

别抬杠说写rust就特意要炸样炸样的 不服去写其他什么什么的 只是个提议

--
👇
shanliu: 我在想 为什么rust的编译器不能帮忙做些减少开发者少写些代码的工作 我知道这个指向的是临时变量的引用, 但如果编译器看到这样情况能自动创建一个临时变量不就好了

--
👇
Neutron3529: 你的意思是,这样?

println!("{:?}",a.map(|a|{a as i64}).as_ref());

as_ref是个坑

幸亏你用的是rust

C++里面敢这么搞的,最后都segfault了

作者 shanliu 2022-05-07 23:27

我在想 为什么rust的编译器不能帮忙做些减少开发者少写些代码的工作 我知道这个指向的是临时变量的引用, 但如果编译器看到这样情况能自动创建一个临时变量不就好了

--
👇
Neutron3529: 你的意思是,这样?

println!("{:?}",a.map(|a|{a as i64}).as_ref());

as_ref是个坑

幸亏你用的是rust

C++里面敢这么搞的,最后都segfault了

Neutron3529 2022-05-07 22:35

你的意思是,这样?

println!("{:?}",a.map(|a|{a as i64}).as_ref());

as_ref是个坑

幸亏你用的是rust

C++里面敢这么搞的,最后都segfault了

1 共 3 条评论, 1 页