You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.2 KiB

3

Functions

函数的关键字为fn,main函数是所有程序的入口。rust中变量名与函数名都使用蛇形方式来定义:所有字母均小写,并用下划线分隔单词。

image-20221230094854809

带参数的函数

函数签名中必须声明每个参数类型。多个参数之间用逗号隔开。

image-20221230095815943

语句和表达式

语句是执行某些操作但没有返回值的指令。

表达式是计算结果值。

image-20221230100640655

无法做到c语言中的 x=y=6;

表达式可以是语句的一部分:计算结果是表达式,调用函数是表达式,调用宏是表达式,用大括号创建的新作用域块是一个表达式。

同大多数行不同,该x+1行末尾没有分号。表达式不包括结束分号,若在表达式末尾添加分号,就成为了一个语句,就不再返回值。

image-20221230105445787

带返回值的函数

Rust中,函数的返回值和函数体块中最终表达式的值同义。返回值需通过箭头(->)声明它们的类型。可以通过return关键字从函数中提前返回,但更多的函数会隐式返回最后一个表达式。

image-20221230110750052

Control Flow

if Expressions

if 的条件必须是一个bool值,

image-20221230111849826

if在let声明中使用(类似 int x = condition? 1:2)

因为变量必须有单一类型,而 Rust 需要在编译时明确地知道 number变量是什么类型。故if和else表达式结果需为同一类型。

image-20221230112429207

loops

rust循环有三种:loop、while和for。

loop

image-20221230113949310

循环标签必须以单引号开头。多级嵌套循环时,当在内循环中使用外循环的continue和break时。可以通过给外循环指定一个循环标签来实现。

image-20221230134828392

while

条件循环。节省了loop中各种的if,else以及break代码。当条件为true时执行循环。

image-20221230135710864

for

rust中最常用的循环结构。使用for遍历数组时,不需考虑数组的个数。减少了出现错误的可能性。

image-20221230140057284

image-20221230140833380