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

rust数值运算小栗子:

fn main() {//1.both of the same type: i32let 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 + f32let 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初学者, 水平有限,持续学习中,如有谬误希望指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go-zero整合单机版ClickHouse并实现增删改查

go-zero整合单机版ClickHouse并实现增删改查 本教程基于go-zero微服务入门教程,项目工程结构同上一个教程。 本教程主要实现go-zero框架整合单机版ClickHouse,并暴露接口实现对ClickHouse数据的增删改查。 go-zero微服务入门教程:https://b…

如何使用python将多个EXCEL表进行合并

在Python中,你可以使用pandas库来轻松地将多个Excel表格合并。以下是一个基本的步骤指南和示例代码,说明如何合并多个Excel文件到一个单独的DataFrame中: 步骤 安装pandas和openpyxl(如果你正在处理.xlsx文件)。导入…

Microservices with Martin Fowler

Summary The article “Microservices” by Martin Fowler discusses an architectural style for software systems that has been gaining popularity due to its flexibility and scalability. Here’s a summary highlighting the key points: Microservice Architectural…

通过Validator接口实现参数校验

一、自定义类实现Validator接口 重写supports和validate这两个方法&#xff0c;在supports中写你要需校验的参数&#xff0c;在validate中定义你需要校验的规则 public class WarehouseAreaValidator implements Validator {Overridepublic boolean supports(Class<?>…

贪吃蛇游戏的编程之旅:在Windows PyCharm中使用Python

在电脑游戏的发展史中,贪吃蛇游戏无疑是其中的经典之作。许多人对其简单而上瘾的游戏玩法念念不忘。对编程爱好者来说,重新编写一个贪吃蛇游戏不仅是对青春回忆的一种致敬,也是一个极佳的学习机会。本文将引导你在Windows系统的PyCharm环境下,使用Python和pygame库来实现这…

jackson 若干问

jackson 若干问 https://www.jianshu.com/p/7a4653704acb https://cloud.tencent.com/developer/article/2394800 https://developer.aliyun.com/article/1001646 https://stackoverflow.com/questions/24280605/how-to-create-json-array-using-jackson https://www.bael…

Unity内制作动画

Unity内制作动画 动画剪辑&#xff08;Animation Clips&#xff09; 创建动画剪辑&#xff1a;在Unity中&#xff0c;可以通过导入动画数据来创建动画剪辑。这些数据可以是FBX、OBJ等格式的3D模型文件&#xff0c;其中包含关键帧动画。 编辑动画剪辑&#xff1a;在Unity的Anim…

最新一站式AI创作中文系统网站源码+系统部署+支持GPT对话、Midjourney绘画、Suno音乐、GPT-4o文档分析等大模型

一、系统简介 本文将介绍最新的一站式AI创作中文系统&#xff08;集成ChatGPTMidjourneySunoStable Diffusion&#xff09;——星河易创AI系统&#xff0c;该系统基于ChatGPT的核心技术&#xff0c;融合了自然语言问答、绘画、音乐、文档分享、图片识别等创作功能&#xff0c;…

牛客热题:数组中出现一次的两个数字

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;力扣刷题日记 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 文章目录 牛客热题&#xff1a;数组中出现一次的两个数字题目链…

开发Windows应用程序的多种工具和语言

在软件开发领域&#xff0c;Windows应用程序的开发是一个广泛而多样化的领域。开发者可以利用各种工具和编程语言来创建功能丰富、用户友好的应用程序。以下是一些常见的开发环境和编程语言&#xff0c;它们被广泛用于开发Windows应用程序。 Visual Studio&#xff1a;微软的集…

集成学习算法笔记

一、引言 在机器学习和数据分析领域&#xff0c;集成学习算法因其能够显著提高模型预测性能而备受关注。然而&#xff0c;任何算法在应用过程中都不可避免地会遇到一些挑战和问题&#xff0c;集成学习算法也不例外。其中&#xff0c;最为常见且关键的两大问题便是欠拟合&#…

全国水系数据(更新到2024年5月)

上海市水系数据地图可视化 水系数据线图层&#xff08;小河/溪流、江/河、运河、下水道/排水管&#xff09; 水系数据面数据&#xff08;水域、水库、河岸、湿地&#xff09; 水系数据字段说明 可视化预览 北京市水系可视化 上海市水系可视化 广州市水系可视化 深圳市水系可视化…

考研数学考到110+分,到底有多难?

很难&#xff01; 大家平时在网上上看到很多人说自己考了130&#xff0c;其实这些人只占参加考研数学人数的极少部分&#xff0c;有个数据可以展示出来考研数学到底有多难&#xff1a; 在几百万考研大军中&#xff0c;能考到120分以上的考生只有2%。绝大多数人的分数集中在30…

Django 注册应用

上一章Django 创建项目及应用-CSDN博客 创建的应用&#xff0c;需要在主项目的myshop.settings.py 文件下注册 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.sta…

[DDR5 Jedec 4-1] 预充电命令 Precharge

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR》 1. 预充电&#xff08;Precharge&#xff09;含义 由于SDRAM的寻址具体独占性&#xff0c;因此在进行完读写操作后&#xff0c;若需对同一L-Bank的另一行进行寻址&#xff0c;则必须先关闭原…

关于SQL中json类型字段优化查询

场景 写sql时&#xff0c;会出现大量的left join的情况&#xff0c;针对这种方式提供 两种解决方案。 解决方案 方案一 宽表&#xff0c;但是其维护性差 方案二 JSON类型字段 将业务查询的一些实体类 直接以JSON的形式存到数据库&#xff0c;以下是SQL代码查询的实例 dat…

vue3 源码下载地址

想要了解vue3底层的代码逻辑&#xff0c;就需要看其代码&#xff0c;为了技术的进步&#xff0c;冲啊。 源码下载地址&#xff1a; git clone https://github.com/vuejs/core.git 雄鹰每次折断翅膀&#xff0c;是为了飞的更高更远。技术提升起来&#xff0c;飞的更远更高。

Linux虚拟机设置定时任务(crontab)

Linux虚拟机设置定时任务(crontab) 在Linux中&#xff08;使用Cron&#xff09;&#xff1a; crontab 详解: crontab 是一个用于在 Unix 和类 Unix 操作系统上运行定期任务的工具。它允许用户根据特定的时间表执行命令或脚本&#xff0c;而无需手动执行它们。 使用 crontab…

0开篇-介绍

创作灵感 最近又开始写Python&#xff0c;换新机器了&#xff0c;加上回顾硬盘上的一些资料&#xff0c;发现当时用在态势上的一些机器学习内容一直没有收尾&#xff0c;2019年10月研发中心成立中断了机器学习产品的研发&#xff0c;加上后来疫情&#xff0c;这几年荒废了。有…

如何创建一个线程池,为什么不推荐使用Executors去创建呢?

我们在学线程的时候了解了几种创建线程的方式&#xff0c;比如继承Thread类&#xff0c;实现Runnable接口、Callable接口等&#xff0c;那对于线程池的使用&#xff0c;也需要去创建它&#xff0c;在这里我们提供2种构造线程池的方法&#xff1a; 方法一&#xff1a; 通过Thre…