Rust 基础语法(一) -- 变量、运算与注释
2022-05-21 20:38:10 最后更新: 2022-06-14 16:36:47 访问数量:449
2022-05-21 20:38:10 最后更新: 2022-06-14 16:36:47 访问数量:449
上一篇文章中,我们已经看到了 Rust 标准输出的例子:
在 Rust 规范中,宏均以 ! 结尾,用于标准输出的“函数”实际上就是通过宏来实现的。
Rust 用作标准输出的宏有两个:
两个的区别仅在于是否在末尾加上换行符。
上面的例子中,在输出参数中存在一个占位符 {},用来指代后面参数列表中的参数:
在这个例子中,参数列表中的 a 出现了两次,看起来有些冗余,rust 允许在 {} 中加入数字来进行对参数列表进行索引:
如何转义占位符,从而能够输出 {} 呢?
这样就会输出:
{}
在本文的第一个例子中,我们看到了 let
关键字。它用来声明变量:
变量 a 在此声明之后,便拥有了类型,但我们并不能更改 a 的值,因为 a 并不是一个可变变量。
如果想让 a 被重新赋值,那么就需要用另一个关键字 mut
将变量标记为可变:
但是要记住,a 是有类型的,即便 a 是可变的,仍然不能为 a 赋予其他类型的值。
尽管不可变变量不能被重新赋值,但它是可以被重新声明的,通过重新声明可以重新绑定这一变量,从而为变量赋予新的值。
例如你可以这样使用重影机制:
会输出:
The value of x is: 12
变量默认是不可变的,除非用 mut
关键字修饰,常量则永远都是不可变的。
在 Rust 中,我们需要这样来创建常量:
常量与变量的区别体现在以下几点:
和其他语言类似,Rust 中数据类型也分为以下几个类型:
位长度 | 有符号 | 无符号 |
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
isize 和 usize 两种整数类型是用来衡量数据大小的,它们的位长度取决于所运行的目标平台,通常用作索引值来使用。
整型数的不同进制的写法有以下几种:
进制 | 例 |
十进制 | 98_222 |
十六进制 | 0xff |
八进制 | 0o77 |
二进制 | 0b1111_0000 |
字节(只能表示 u8 型) | b'A' |
可以在变量声明时指定变量类型:
浮点型分为 32 位浮点数 f32 和 64 浮点数 f64。
布尔型有两个取值:
Rust 中的字符型用 char 表示,大小为 4 字节,中文字符串则强制使用 UTF-8 编码。
与其他语言非常类似,数组和元组就是一组数据的集合。
元组是通过一堆括号包括的一组数据,可以拥有不同的数据类型,但一经定义就不能改变其大小:
数组使用方括号包括的一组数据,这些数据必须是相同类型,且同样拥有固定的长度:
你同样也可以显式声明数组的类型:
在方括号中,i32 表示数组元素的类型,5 表示数组的长度
rust 支持基本的数学运算,如:
和许多其他语言一样,Rust 支持下面的三种注释:
除此以外,rust 还有一种特殊的用于说明文档的注释:
Cargo 的 cargo doc 功能可以自动将文档书名注释变成 html 格式的说明文档。