小鸭子的学习笔记duck

Duck Blog

唐如飞

( ^∀^)/欢迎\( ^∀^)

79 文章数
14 评论数

Rust入门-day-2

tangrufei
2023-03-01 / 0 评论 / 219 阅读 / 0 点赞

复合类型

复合类型可以把多个值放到一个类型里面

-Rust提供了两种复合类型:元组(Tuple)、数组

Tuple

Tuple可以将多个类型的多个值放在一个类型里面
-Tuple的长度是固定的:一旦声明就无法改变

# 创建Tuple

-在小括号里,将值用逗号分开

-Tuple中的每个位置都对应一个类型,Tuple中各元素的类型不必相同

# 获取Tuple的元素值

可以使用模式匹配:(destructrue)一个Tuple来获取元素的值

let tup:(i32,f64,u8) =(500,6.4,1)

let(x,y,z)=tup;


println!("{},{},{}",x,y,z);
# 访问Tuple元素
在Tuple变量使用标记法,后接元素的索引号
(例子)

数组

数组也可以将多个值放在一个类型里面

数组中每个元素的类型必须相同

数组的长度也是固定的

# 声明数组
在中括号中,各值使用逗号分开

# 数组的用处
如果想让你的数据存放在 stack (栈) 上而不是 heap(堆)上,或者想保证有固定数量的元素,这时使用数组更有好处

数组没有Vector灵活

# 数组的类型
- 例如: let a: [i32; 5] =[1,2,3,4,5];

# 另一个声明数组的方式
如果数组的每个元素值都相同,那么可以在:
- 在中括号里指定初始值
- 然后是一个";"
最后是数组的长度
例如: leta=[3;5;它就相当于: let a =[3,3,3,3,3];

函数

声明函数使用fn 关键字
依照惯例,针对函数和变量名,Rust 使用 snake case 命名规范:- 所有的字母都是小写的,单词之间使用下划线分开
# 函数的参数
parameters,arguments

在函数签名里,必须声明每个参数的类型

# 函数体中的语句与表达式
函数体是由一系列语句组成,可选的由一个表达式结束

Rust是一个基于表达式的语言

语句是执行一些动作的指令

表达式会计算并产生一个值

函数的定义也是一个语句

语句没有返回值,所以不可能用let将一个语句赋给一个标量

# 函数的返回值
在-> 符号后边声明函数返回值的类型,但是不可以为返回值命名在 

Rust 里面,返回值就是函数体里面最后一个表达式的值

若想提前返回,需使用 return 关键字,并指定一个值大多数函数都是默认使用最后一个表达式最为返回值

控制流

# if表达式
if表达式允许您根据条件来执行不同代码的分支
-这个条件必须是bool类型

if表达式中,与条件相关联的的代码块就叫分支(arm)

可选的:可以再后面加上一个else

# 使用else if处理多重条件

但如果,使用了多个else if,那么最好使用match来重构代码

在let语句中使用if
因为if是一个表达式,所以可以将它放在let语句中等号的右边
# Rush的循环
Rust提供了三种循环:loop,while,和for
# loop循环
loop关键字告诉Rust需要反复的执行一块代码,知道你喊停
可以再loop循环中使用break关键字,告诉程序何时停止循环

# while循环
另外一种常见的循环模式是每次执行代码之前都判断一次条件.

# for循环
我们可以使用while或者loop循环遍历集合,但是易错且低效

使用for循环更加简洁紧凑,它可以针对集合中的每个元素来执行一些代码

由于for循环的安全性、简洁性,所以他在Rust中使用的此时最多

# Range
标准库提供

指定一个开始数字和一个结束数字,range可以生成他们之间的数字(不含结束)

rev可以翻转range

struct

什么是struct

struct的定义

实例化struct

取值



字段初始化简写

struct更新语法

Tuple struct

Uint-Like struct

例子

struct更新语法

Tuple struct

定义方法

方法调用的运算符

关联函数


文章不错,扫码支持一下吧~
上一篇 下一篇
评论
来首音乐
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月