rust显示类型转换-语言规则设计思考

rust数值运算小栗子:

fn main() {

    //1.both of the same type: i32
    let sum = 6 + 10;
    println!("1.both of the same type: i32 ,value: {}", sum);

    //2. i32 + u32;
    let sum = 6i32 + 10u32 as i32;
    println!("2. i32 + u32 ,value: {}", sum);

    //3. i8 + u8;
    let sum = 2i8 as u8 + 3u8;
    println!("3. i8 + u8 ,value: {}", sum);

    //4. i8 + i32 ,result as i32 type;
    let sum = 3i8 as i32 + 666i32;
    println!("4. i8 + i32 , value: {}", sum);

    //5. i8 + i32 , result as i8 type;
    let sum = 3i8  + 666i32 as i8;
    println!("4. i8 + i32 , value: {}", sum);

    //6. i32 + f32
    let sum = 1i32 + 1.0f32 as i32;
    println!("6. i32 + f32 , value: {}", sum);
}
 

       我是c++程序员,c++的灵活和强大是众所周知的!初上手写rust代码时确实有些抓狂,比如上面简单平常的数值运算,c++默认就帮你自动转换了, 当然是否符合预期需要运行时发现问题后跟踪调试!比如:溢出、截断、环绕、符号位等,这些问题不论是用c++还是用rust编程时都需要认真考虑的!只不过我们习惯了在写代码时的自由发挥无拘无束的感觉,随后运行调试时的煎熬酸爽!

      rust选择在代码编写期间发现问题解决问题!反正你要赋值,你要运算,那么你的类型就要明确!不同的类型需要转换为同一个类型,比如用as, 或者自己实现From&Into trait特征,令人感到刻板无情,一根筋!但是确实可以发现问题解决问题!避免日后的煎熬!

     你以为类型转换是个简单问题!比如上面及其简单的数值运算代码,稀松平常,没兴趣!?

那么我们需要时不时地回望过去,温故历史,那样会使我们更加清醒和睿智!

        rust不是程序员的敌人,严苛的语言规则,固执的编译器,只为我们项目完成后真的可以洒脱离开!你不要以为我在无病呻吟顾影自怜,作为一名c++老菜鸟, 我见识过太多项目中,许多高手各种淫巧奇技,开发效率不可谓不快,代码看着不可谓不神秘潇洒!也看过很多维护者的抓狂!运维者、老板、甲方等的暴怒!呵呵,你也许会骄傲地认为,因为你是菜鸟,我是天才,所以呵呵...

        既然是人,那么能力水平就不同,纵然能力水平相同,但作为凡人我们又各有心思习惯,谁能做到上下一心?!再加上项目期限的紧逼,老板和甲方的催促,不断变化增多的需求!不断日夜加班的憔悴!那么你还骄傲的起来吗?!

        我的建议,接受rust, 学习rust!不要小看每一个语法点和规则设计,有的时候刻板繁琐的语法和规则也是有意为之。

我自己也是rust初学者, 水平有限,持续学习中,如有谬误希望指正。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值