上篇文章我们学习了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 属地广东