Rust无法流行起来

Rust 据说是最安全的编程语言.
今天简单学习了一下,感觉并不是那么的容易接受.
根据我的经验, 凡是复杂的东西, 必然很难推广.

从设计上来说确实是挺安全的, 考虑的很多 .
但是我感觉Rust 编译器强制让程序员注意变量作用域的范围. 引入了很多奇奇怪怪的限制. 增加了思考的维度. 这不是一个好的选择.

应该考虑增加一些其它的机制来一次性解决内存安全的问题, 而不是全部交给程序员来解决. 每个变量在使用的时候要注意这个变量是否还存在的问题. 这不是一个非常好的选择. 如果能让编译器或者某种程序来解决这种问题. 那么最好是交给程序来解决. 交给程序员来解决, 那将是非常麻烦的.

可以定义一种规约限制变量的作用域, 划清某些边界和界限. 目前是每个变量的使用有很多违反直觉的方面.

最好的机制, 应该是让程序员感觉不到它的存在. 而不是让程序员时时刻刻的考虑到它的存在.

当然我也看到了rust中有些优秀的地方. 例如

{// 在声明以前,变量 s 无效let s = "runoob";// 这里是变量 s 的可用范围
}
// 变量范围已经结束,变量 s 无效

变量范围,确实挺好的, 而且编译器后面增加了自动销毁变量的功能 .
1.去掉了指针,
2.保留了引用.
3.支持泛型
4.代码简化.

我感觉Rust最主要的缺点是代码阅读起来并不是那么的直观易懂. 主代码逻辑隐藏在大量的 各种符号 { } 中. 非常不便于代码理解.

总之感觉挺糟糕的阅读体验.

use std::fmt::Display;fn longest_with_an_announcement<'a, T>(x: &'a str, y: &'a str, ann: T) -> &'a strwhere T: Display
{println!("Announcement! {}", ann);if x.len() > y.len() {x} else {y}
}

我看了半天这个代码, 也没看懂啥意思. 这个跟程序员的技术能力无关, 写代码的目标不是为了炫技能, 而是能够清晰易懂的描述自己的思想逻辑. . 凡是看半天看不懂的. 不好意思, 再见. 再也不见. 目前我遇到的, 一眼之下看不懂源代码的语言有C++, object-c , 现在又多加了一个Rust.

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

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

相关文章

134. 加油站(力扣LeetCode)

文章目录 134. 加油站暴力枚举&#xff08;超时&#xff09;代码一代码二&#xff08;优化&#xff09; 贪心算法方法一方法二 134. 加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加…

Vue箭头函数还原为匿名函数示例

screenResult.serviceType serviceTypeOptions.filter((item) > item.code serviceType.value)[0].value;下面是将箭头函数还原为普通函数的过程&#xff1a; screenResult.serviceType serviceTypeOptions.filter(function(item) {return item.code serviceType.value…

ng发布静态资源 发布项目 发布数据

描述&#xff1a;把一个项目或者数据发布出来&#xff0c;通过http的形式访问&#xff0c;比如发布一个js文件&#xff0c;用http://localhost:6060/data/jquery/jquery.min.js访问。 步骤&#xff1a;配置nginx.conf文件&#xff0c;nginx.conf位于conf目录下&#xff0c;在se…

ROS机器人虚拟仿真挑战赛本地电脑环境配置测试

预备基础 此案例需要完成&#xff1a; ROS机器人虚拟仿真挑战赛本地电脑环境配置记录-CSDN博客 ROS机器人虚拟仿真挑战赛本地电脑环境配置个人问题汇总-CSDN博客 命令测试 在不同的终端窗口分别输入&#xff1a; 标签1&#xff1a; roslaunch tianracer_gazebo demo_tian…

分享|大数据信用风险测评多久做一次比较好?

大数据信用风险测评多久做一次比较好?对于个人大数据信用风险测评&#xff0c;一般来说&#xff0c;多久做一次并没有固定的时间间隔。这取决于许多因素&#xff0c;包括个人信用状况、数据更新频率、个人需求等等。 首先&#xff0c;个人的信用状况是决定测评频率的一个重要因…

成都百洲文化传媒有限公司电商新浪潮的领航者

在当今电商行业风起云涌的时代&#xff0c;成都百洲文化传媒有限公司以其独特的视角和专业的服务&#xff0c;成为了众多商家争相合作的伙伴。今天&#xff0c;就让我们一起走进百洲文化的世界&#xff0c;探索其背后的成功密码。 一、百洲文化的崛起之路 成都百洲文化传媒有限…

各类主流电商API商品采集接口的权限控制和功能权限控制

主流电商平台的API接口类型 参数说明 通用参数说明 url说明 /平台/API类型/ 平台&#xff1a;淘宝&#xff0c;京东等&#xff0c; API类型:[item_search,item_get,item_search_shop等]version:API版本key:调用key,测试key:test_api_keysecret:调用secret,测试secret:(不用填写…

Unity定时播放音乐

一、需求 需要定时在早上8:50&#xff0c;中午12:00&#xff0c;下午13:10定时播放音乐 二、实现步骤 依次在unity创建背景图、主文字提示、时间文字提示、音量控制器及音量文字提示、退出按钮、播放按钮&#xff0c;暂停按钮 在Canvas下创建一个Script脚本&#xff1a;获取…

【光标精灵】让您享受鼠标皮肤多样化快捷更换

鼠标作为我们日常使用频率最高的“小伙伴”&#xff0c;扮演着至关重要的角色。尤其是在女生群体中&#xff0c;对于打造一个个性化、可爱的电脑桌面和软件界面的需求日益增长。然而&#xff0c;尽管电脑默认提供了一些可更换的光标图案&#xff0c;但仍显得有些单调和呆板。想…

acwing算法提高之搜索--剪枝

目录 1 介绍2 训练 1 介绍 本专题用来记录使用dfs剪枝技巧求解的题目。 剪枝有以下思路&#xff1a; 优化搜索顺序。可行性剪枝。最优性剪枝。唯一性剪枝&#xff0c;也叫去除冗余。记忆化搜索&#xff0c;也叫dp。 2 训练 题目1&#xff1a;165小猫爬山 C代码如下&#…

基于SpringBoot 实现指标监控及日志管理

添加Actuator功能 Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用&#xff0c;比如健康检查、内存使用情况统计、线程使用情况统计等。我们在SpringBoot项目中添加Actuator功能&#xff0c;即可使用Actuator监控 项目&#xff0c;用法如下&#xff1a; 在被监…

从Spring进化为SpringBoot

目录 零.SpringBootApplication 一.起步依赖 二.自动配置 三.自动配置的原理 1.装配常见方案 【1】方案1&#xff1a;ComponentScan 组件扫描 【2】方案2&#xff1a;Import 导入 【3】使用第三方依赖提供的 EnableXxxxx注解 2.自动装配原理 3.实现starter 四.内置T…

olap分析型数据库

一、 1、clickhouse 特点&#xff1a; 分析型数据库 列式数据管理 高压缩率 不适用场景&#xff1a; 不适合联机事务处理 不支持更新删除单条记录 多表连接查询效率低 为什么这么快&#xff1a; 分区健、主键预排序、索引 压缩&#xff0c;减少I/O 向量化&#xff…

虚拟直播赋能文旅,蓝海创意云亮相文旅虚拟现实应用推广交流活动

3月21日&#xff0c;由文化和旅游部产业发展司主办&#xff0c;中国信息通信研究院、北京市石景山区文化和旅游局、中国动漫集团有限公司承办的文化和旅游虚拟现实应用推广交流活动在首钢一高炉SoReal科幻乐园33 Meta Club举办。蓝海创意云应邀参与此次活动&#xff0c;携vLive…

MySQL索引的创建与基本用法

文章目录 MySQL索引MySQL索引的类型与创建方法基础索引 唯一索引**唯一索引的创建** ******注意唯一索引允许有空值&#xff08;注意和主键不同&#xff09;。如果是用组合索引创建&#xff0c;则列值的组合必须唯一。添加唯一键将自动创建唯一索引。*** ***主键索引组合索引**…

Java毕业设计 基于springboot医院挂号系统 医院管理系统

Java毕业设计 基于springboot医院挂号系统 医院管理系统 springboot医院挂号系统 医院管理系统 功能介绍 用户&#xff1a;登录 首页 个人资料 修改密码 门诊管理 用户挂号 医生&#xff1a;登录 首页 个人资料 修改密码 门诊管理: 用户挂号 处方划价 项目划价 项目缴费 项目…

C++多线程并发学完后,该学什么呢?

概述 如何安排知识点的学习次序&#xff0c;有很多做法&#xff0c;下面提供一种思路。 答&#xff1a;C在多线程学完后&#xff0c;可以学网络。 相当于这么一个学习及实际开发中常见演进过程&#xff1a; 单线程、无网络的程序&#xff1a; 一家公司&#xff0c;一个员工…

多级页表查询

说明一下这个三级页表的查询&#xff0c;会需要上面的L2,L1,L0 如果在二级页表level就是2&#xff0c;PGSHIFT是12&#xff0c;那么就是往左移129*2位置&#xff0c;在&9bit就得到L2&#xff0c;其他以此类推 也表查询&#xff0c;首先有跟页表的地址pagetable&#xff0c;…

美团到店-后端开发一面

1. 介绍一下spring的两大核心思想 2. 介绍一下java的代理&#xff0c;以及动态代理和静态代理的区别 3. spring动态代理是如何生成的&#xff0c;jdk动态代理和cglib的区别 4. 介绍一下synchronized关键字、以及synchronized锁和lock的区别 5. 讲一下java中synchronized的锁升级…

测径仪:大小通吃的“直径判官”

嗨&#xff0c;大家好&#xff01;今天我要给你们介绍一个超级厉害的玩意儿——在线测径仪&#xff01;它可不是一般的测量工具&#xff0c;它是那个能让直径无处遁形的“直径判官”&#xff01; 想象一下&#xff0c;有了在线测径仪&#xff0c;你就像是拥有了一双超级敏锐的“…