cargo 项目管理工具
cargo是rust
的代码组织管理工具,cargo
提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为 rust
项目的管理提供尽可能完整的手段,同时,与 rust
语言及其编译器 rustc
本身的各种特性紧密结合。(摘自 RustPrimer)
新建学习基础项目
cargo new first --bin
新建一个名为 first 的 rust 项目,--bin 表示就会生成可执行文件
此时 cargo 会自动为我们生成必须的文件。
变量绑定
在 rust 中定义变量称之为变量绑定,有些类似于 java 等的定义变量,语法如下:
let m=5;//
let n:i32=5;//m和n值相等,整数默认为i32类型
assert_eq!(m,n);//判断m、n是否相等
let mut x=10;//x称为可变绑定,上面的m、n成为不可变绑定(类似于Java中的final定义常量)
//m=6;//此时会出错,因为m是不可变绑定,此时可用let mut m=8来重新绑定为可变绑定
Rust 内置原生类型
- 布尔类型:有两个值
true
和false
。 - 字符类型:表示单个 Unicode 字符,存储为 4 个字节。
- 数值类型:分为有符号整数 (
i8
,i16
,i32
,i64
,isize
)、 无符号整数 (u8
,u16
,u32
,u64
,usize
) 以及浮点数 (f32
,f64
)。 - 字符串类型:最底层的是不定长类型
str
,更常用的是字符串切片&str
和堆分配字符串String
, 其中字符串切片是静态分配的,有固定的大小,并且不可变,而堆分配字符串是可变的。 - 数组:具有固定大小,并且元素都是同种类型,可表示为
[T; N]
。 - 切片:引用一个数组的部分数据并且不需要拷贝,可表示为
&[T]
。 - 元组:具有固定大小的有序列表,每个元素都有自己的类型,通过解构或者索引来获得每个元素的值。
- 指针:最底层的是裸指针
*const T
和*mut T
,但解引用它们是不安全的,必须放到unsafe
块里。 - 函数:具有函数类型的变量实质上是一个函数指针。
- 元类型:即
()
,其唯一的值也是()
。
fn main() {
let m=5;
let n:i32=5;
assert_eq!(m,n);
println!("Welcome to rust-lang");
//boolean type
let t=true;
let f:bool=false;
//char type
let c='c';
//numeric types
let x=42;
let y:u32=123_456;//无符号32位整数
let z:f64=1.23e+2;//浮点数
let zero=z.abs_sub(123.4);
let bin=0b1111_0000;//二进制
let oct=0o7320_1546;//十进制
let hex=0xf23a_b049;//16进制
//arrays and slices
let a=[0,1,2,3,4];
let middle=&a[1..4];//数组切片,引用数组的一部分,且不需要复制
let mut ten_zeros:[i64;10]=[0,10];
//注意:使用&符号将String类型转换成&str类型很廉价, 但是使用to_string()方法将&str
//转换到String类型涉及到分配内存, 除非很有必要否则不要这么做。
}