文章目录
- 安装与简介[参考RUST官网安装](https://www.rust-lang.org/zh-CN/tools/install)
- 代码学习[参考RUST官网](https://doc.rust-lang.org/book/ch00-00-introduction.html)
安装与简介参考RUST官网安装
- 静态类型语言:必须在编译时确定数据类型。
- 变量默认不可变,
- 子模块默认私有,方便隐藏实现细节
- 没有null
- 编译器穷尽所有编译可能,以避免出错。
内存相关的 - 所有权、深浅copy比较特殊
- 栈区,默认不区分深浅copy,还有Copy trait
- 堆区,默认浅copy转移所有权
- String数据类型是
- Copy trait A赋值给B,后A依旧可用
- Drop trait 类型禁止使用Copy trait
Rust 的默认方式和C++大部分是反着的,变量引用默认不可修改,函数形参默认为所有权转移。栈区默认是类似Copy trait(个人感觉有点像深拷贝),堆区默认是所有权转移。
代码学习参考RUST官网
关键字
let
创建变量mut
可变变量
数据类型
数值类型变量
整型
有符号数 | 无符号数 |
---|---|
i8 8bit整型 |
u8 8bit整型 |
i16 16bit整型 |
u16 16bit整型 |
i32 32bit整型(默认整型) |
u32 32bit整型 |
i64 64bit整型 |
u64 64bit整型 |
i128 128bit整型 |
u128 128bit整型 |
arch类型
依赖运行程序的计算机架构:64 位架构上它们是 64 bit的,32 位架构上它们是 32 bit的。
isize
有符号archusize
无符号arch
浮点类型
f32
浮点数32bitf64
浮点数64bit
布尔类型
bool
布尔值true
或false
复合数据类型
-
tuple
let x: (i32, f64, u8) = (500, 6.4, 1); let five_hundred = x.0; let six_point_four = x.1; let one = x.2;
-
array
let a = [1, 2, 3, 4, 5]; let a: [i32; 5] = [1, 2, 3, 4, 5]; let first = a[0]; let second = a[1];