首页 rust

语言基础篇

变量与数据类型

变量声明

变量默认不可变

let x : i8 = 1;
// Rust编译器有变量类型的自动推导功能
let y = 14; // 这个y就自动被推导为 : i32 ,所以如果可以根据赋值类型或者上下文推导出变量类型,可以省略冒号与数据类型
// 变量名字面区分大小写,不能以数字开头,但是下划线有特殊含义(???)

image-20210729151933452.png

let声明的变量默认是不可变的,所以在第二次赋值的时候报错二次声明

image-20210729152518529.png

但是变量声明的时候加上mut就可以重新赋值的

image-20210729153405261.png

但是这里有两个词很有意思前者是只读状态,后者是可写状态

在Rust中,如果一个变量为不可变的只读状态,则它真的不会变。

变量x可以在值更新后重新声明,这个在Rust中叫做变量遮蔽,其中第二个x应该为4 * 2 = 8;而经过变量遮蔽之后就不会再有前面的值了。但是需要注意的是:书上有一句:它们是两个完全不同的变量,处于不同的内存空间

image-20210729153833853.png

变量遮蔽本质其实就是创建一个新的变量而已

常量

const开头声明常量,一定要指定数据类型。

image-20210729154329352.png

const n : i32 = 1024;

常量可以在任何作用域声明,定义后不可变更或重新赋值。

常量只能被赋值为常量表达式或数学表达式,不能是函数的返回值或者运行时才能确定的值

image-20210729161234073.png

数据类型

整数

i8,i16,i32,i64,i128,有符号数几位,u开头则是无符号数,如u32

其中有趣的点是:在数字中可以使用下划线来提高柱子可读性

image-20210730204034733.png

浮点数

两种:f32,单精度浮点数,小数点后面至少有6位有效数字,

f64,双精度浮点数,小数点后至少有15位有效数字

布尔类型

image-20210730204439454.png

字符型

Rust使用UTF-8作为低吗的编码

类型范围

image-20210730205045539.png

还有要注意,最后一行一定要声明类型

元组类型

感觉很像结构体,如果只有一个元素的元祖,记着加括号中的逗号来确认这是一个元组,

第四行中有一个元组名.数字就是代表第几个,从零开始数

第五行就是元组给三个变量按顺序声明。

image-20210730205429353.png

豆瓣链接:https://book.douban.com/subject/35447165/

疑问:命名中的下划线到底是干什么用的




文章评论

目录