rust语言学习
Rust
如果要声明变量,需要使用 let 关键字。例如:
1 | let a = 123; |
在这句声明语句之后,以下三行代码都是被禁止的:
1 | a = "abc"; |
第一行的错误在于当声明 a 是 123 以后,a 就被确定为整型数字,不能把字符串类型的值赋给它。
第二行的错误在于自动转换数字精度有损失,Rust 语言不允许精度有损失的自动数据类型转换。
第三行的错误在于 a 不是个可变变量。
常量与不可变变量的区别
既然不可变变量是不可变的,那不就是常量吗?为什么叫变量?
变量和常量还是有区别的。在 Rust 中,以下程序是合法的:
1 | let a = 123; // 可以编译,但可能有警告,因为该变量没有被使用 |
但是如果 a 是常量就不合法:
1 | const a: i32 = 123; |
变量的值可以”重新绑定”,但在”重新绑定”以前不能私自被改变,这样可以确保在每一次”绑定”之后的区域里编译器可以充分的推理程序逻辑。 虽然 Rust 有自动判断类型的功能,但有些情况下声明类型更加方便:
1 | let a: u64 = 123; |
这里声明了 a 为无符号 64 位整型变量,如果没有声明类型,a 将自动被判断为有符号 32 位整型变量,这对于 a 的取值范围有很大的影响。
数据类型
Rust 是静态类型语言,在变量声明时可以显式指定类型,但通常可以依赖类型推断。
基本类型: i32 (32位有符号整数), u32 (32位无符号整数), f64 (64位浮点数), bool (布尔类型), char (字符)
实例
1 | let x: i32 = 42; |
函数
Rust 函数通过 fn 关键字定义,函数的返回类型通过箭头符号 -> 指定。
实例
1 | fn add(a: i32, b: i32) -> i32 { |
如果函数没有返回值,类型默认为 **()**(即空元组)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Xilker's Blog!




