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初学者, 水平有限,持续学习中,如有谬误希望指正。

相关推荐

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

    2024-06-05 23:02:04       38 阅读
  2. rust语言一些规则学习

    2024-06-05 23:02:04       33 阅读
  3. 显示隐式-》初始化 & 类型转换

    2024-06-05 23:02:04       24 阅读
  4. go语言数据类型转换

    2024-06-05 23:02:04       35 阅读
  5. Rust语言实现图像编码转换

    2024-06-05 23:02:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-05 23:02:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-05 23:02:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-05 23:02:04       82 阅读
  4. Python语言-面向对象

    2024-06-05 23:02:04       91 阅读

热门阅读

  1. OpenSSL自签名证书

    2024-06-05 23:02:04       36 阅读
  2. 【sklearn | 6】无监督学习与聚类分析

    2024-06-05 23:02:04       33 阅读
  3. 【如何在Qt C++中使用SSL和TLS加密传输数据?】

    2024-06-05 23:02:04       36 阅读
  4. 路由懒加载

    2024-06-05 23:02:04       33 阅读
  5. 如何避免Python中默认参数带来的陷阱

    2024-06-05 23:02:04       29 阅读