首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

1.5 快速浏览下函数、控制流

上一节我们熟悉了标量和复合类型,知道rust默认变量是不可变的,在编译时,编译器需要明确每个变量的大小,数组可以在栈上分配,因为他是固定大小。

我们现在要快速浏览一下rust的函数和控制流,他们和大多数语言类似,所以我们可以快速浏览一遍,我会着重讲rust不同的地方,或者是需要注意的点。

函数

rust的函数是一等公民,即函数可以作为参数,也可以作为返回值。如果没有返回值可以省略,则返回"unit",默认函数大括号最后一个表达式就是返回值(表达式需要计算出一个值,这个值就作为返回值啦,语句则不需要),若在中间语句需要返回,则使用‘return‘,若直到最后一个表达式都不需要返回,则需要在最后一个表达式后加上’;‘分号,返回‘unit‘。

噢~还有:函数和变量名需要使用‘蛇形命名法’~~即 下划线连接小写字母。对于经常使用几种语言的开发来说挺内个的 :)

下面是函数作为参数的例子,可以看到两个打印的结果是一致的。除此之外,被main()函数调用的函数在前面或者后面都可以:

顺便再啰嗦一下,rust的注释和C++一致,都可以使用‘//’行注释或者/* */块注释。

控制流

if表达式

if语句后面不需要括号“()”,直接计算表达式的值,满足则进入“if”语句之后的逻辑,若不满足则进入“else”后的逻辑。rust使用严格的语法检查,不会隐式转换表达式的值,所以若表达式的结果不是 布尔值,则会直接报错~~

fn main() {    let number = 3;    if number < 5 {        println!("condition was true");    } else {        println!("condition was false");    }}

if语句不适合多个判断,若if···else···过多,可以考虑match(后面会详细介绍)。除此之外,if表达式还可以赋值给变量。

loop

用于一直循环某段逻辑~~感觉用的很少啦。

while

判断while()中表达式条件为“真”,循环,直到条件为“假”则停止循环。

for

主要用于遍历“集合”之类的,不用考虑计数,其内部已经帮我们做了,所以不会越界。

“break”和“continue”关键字:他们都是用于最近的内层结构(若只有一层当我没说~~),“break”是直接跳出循环,也可以直接跳到某行代码标签执行;而“continue”则是跳过当前循环,继续执行下一层循环!具体可以看一下这个例子:

其实今天的内容和其他语言比较类似,可以直接对比不同的地方就好了,有问题可以直接看rust的编译提示,不是有句话说得好吗?写rust就是各种和编译器做斗争,在初期,我们要勇于斗争!善于斗争~~~ :)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230206A06WBQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券