Rust 往事 | Loop 和 While True 之争
点击上方蓝字关注我们
理清头脑混沌,觉醒心智天地
我不太清楚 「Rust 往事」会不会是一个系列,先建个专栏再说。
本来想把 「往事」限定于 1.0 版本之前,但又觉得太狭隘了。Rust 是一门不断向前发展的语言,所谓往事,我觉得应该是 Rust 在发展过程中,经历过的所有决策和讨论。
一切过往,皆为序章。
fn main() {
let mut a;
while true {
a = 1;
break ;
}
println!("{}", a); // error[E0381]: borrow of possibly-uninitialized variable: `a`
}
fn main() {
let mut a;
loop {
a = 1;
break ;
}
a);
}
移除 loop 关键字,换成 while true。注意,这里是将 while true 整体来替代 loop。因为其他很多语言都是用的 while true ,这里就不必要加 loop 了。
while true 可以简化为 while { ... } .
warning: denote infinite loops with `loop { ... }`
--> src/lib.rs:6:5
|
6 | while true {
| ^^^^^^^^^^ help: use `loop`
|
= note: `#[warn(while_true)]` on by default
while true 在语义上确实会让人理解为无限循环,没毛病。
-
有些人确实喜欢用 while true,你不能不让他用。
像这样通过 lint 的方式来提示开发者也是一种很好的方式,美中不足的是,这个 warning 还缺乏一个解释,解释为什么 while true 和 loop 的这个区别。这也是为什么有这篇文章的原因。
本文分享自微信公众号 - 觉学社(WakerGroup)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
微内核进行开发工作究竟是怎样的感受?
微内核进行开发工作究竟是怎样的感受? 1.本文目的 2.微内核的差异性 3.微内核该怎么写应用程序? 4.微内核的效率和实时性怎么样? 5.如何客观的评价RT-Thread Smart混合微内核? 1.本文目的 随着RT-Thread Smart微内核发布会的临近,对于开源社区以及国产RTOS比较关注的人或许早有耳闻。RT-Thread要发布微内核操作系统了。从去年的华为提出鸿蒙微内核到目前为止,都未曾真正见到一个微内核系统面向大众。从真正的开发者角度来看,或许真正的关注点不在于多少先进技术的提出,而实际的关注点在于是否好用,是否能够快速高效的开发出稳定的产品,是否用上了之后能够减少自己的工作量。本文主要从微内核开发的思维角度出发,谈一谈RT-Thread Smart以及我个人进行微内核开发工作的所思所想。 2.微内核的差异性 内核是操作系统中管理资源的核心部分,它充当着计算机程序与硬件之间桥梁。 其实在程序运行时,用户态程序想要访问外设,必须要通过内核进行资源调度,然后进行统一的管理。现在许多CPU中,最基本的都会有用户模式和超级管理员模式两种。用户程序首先必须要有可以自己管理的一段...
- 下一篇
5千字的SpringMVC总结,我觉得你会需要
思维导图 微信公众号已开启:【java技术爱好者】,还没关注的记得关注哦~ 文章已收录到我的Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary 概述 SpringMVC再熟悉不过的框架了,因为现在最火的SpringBoot的内置MVC框架就是SpringMVC。我写这篇文章的动机是想通过回顾总结一下,重新认识SpringMVC,所谓温故而知新嘛。 为了了解SpringMVC,先看一个流程示意图: 从流程图中,我们可以看到: 接收前端传过来Request请求。 根据映射路径找到对应的处理器处理请求,处理完成之后返回ModelAndView。 进行视图解析,视图渲染,返回响应结果。 总结就是:参数接收,定义映射路径,页面跳转,返回响应结果。 当然这只是最基本的核心功能,除此之外还可以定义拦截器,全局异常处理,文件上传下载等等。 一、搭建项目 在以前的老项目中,因为还没有SpringBoot,没有自动配置,所以需要使用web.xml文件去定义一个DispatcherServlet。现在互联网应用基本上都使用SpringBo...
相关文章
文章评论
共有0条评论来说两句吧...