
上篇文章我们学习了rust的函数,也知道了rust中函数的一些特性
今天我们继续往下学,本来下一章节是注释comment,但是和其他语言一样,不同点在后面的章节,所以这里就先跳过了。
control flow)这块不用多说,也是非常重要的基础。
还是上次那个
if表达式直接来看下例子
rust中条件不需要括号包裹, 当然你写了也没啥问题,会给你的警告让你移除。
看起来和别的语言也没啥不同,但是rust的特点就是特安全,所以你这里的条件如果不是一个布尔值是会直接报错的,比如
另外,rust还允许赋值,毕竟if表达式中也有{}也就是花括号,允许返回值[3]。
当然,按老规矩这里的返回值得是相同的。
其它也没啥不同了。
之前我们写的猜数游戏里就已经用到过循环loop了。不过循环不只有loop一种方式。
loop就不多说了,我们需要注意的是loop默认是死循环,只有遇到break语句时才会停止,当然,你自己ctrl + c终止程序也是可以的。
另外lopp也是表达式哦,也有{}哦~嘿嘿,那肯定要试下能不能返回值。
当然是可以的[4]
将需要返回的值放到break语句中,其实js也能做到,只不过很少用。
另外需要注意的一个点就是多层循环,break默认是跳出最里层的循环,也就是说如果你有两个loop嵌套的话,那一个break只会停下第二层,第一层还是死循环中。
那么要怎么才能让他们停止呢?官方提供了一种方式,通过命名来解决,也就是如果break;或者continue指向最外层的loop的名字就可以跳出。
是的,你没看错,命名方式是'name,单引号不闭合。。。
while
loop我们不常用,还是while和for更常用一些,和其他语言用法也是一样的
不过需要注意的一点是while没有返回值或者说不需要返回值,因为是通过条件判断的,条件一到自动结束循环。
**for**
while挺方便的,但是有些地方就显得有些繁琐了,比如遍历一个数组,还得先获取数组长度,声明一个index变量,或者用数组长度自减的方式,长度为0的时候跳出循环。很繁琐另外如果条件写错了就可能数组越界了,这会导致程序崩溃,就挺危险。
而用for来循环就会很舒服,来看下rust中for是怎么用的
当然,也并不是所有时候你都有数组可以遍历,这个时候如果你还想用for的话,可以使用rust中标准库里的Range。来看下例子
1..=4是不是很眼熟?我们之前在实现一个随机数时就有用到。
今天我们学了if条件判断以及loop、while、for三种循环。
这一基础大章也学完了。。。怎么说呢,只能是说安全吧。。。
学rust只记得三件事:安全、安全、还特么是安全!
发布于 2022-11-30 16:08・IP 属地广东