版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BaiHuaXiu123/article/details/88068680
1.变量/常量定义
1.1 不可变变量
let a = 5; 是一个不可变的变量,如果改变a的值,编译器则会报错;
1.2 可变变量定义
let mut a = 10;
a = 100
1.3 指定类型的变量
let a: i16 = 20
注意:
i:表示有符号整型,i8,i16,i32,i64;
u:表示无符号整型,u8,u16,u32,u64;
1.4 变量在使用前要进行初始化,否则会报错
let a:64;
print!("{}",a);//报错,a未初始化;
1.5 一个变量可以重复进行申明
let a = 20;
print!("{}",a);
let a = "hello,world";
print!("{}",a);
注意:定义了,一定要使用,否则会报错。
1.6 可以把一个变量赋值给一个常量
let mut a = 12;
let b = a;
2 数据类型
rust是静态类型语言,也就是说在编译时就必须知道所有变量的类型。主要有以下类型:
2.1 标量类型
1)整型
整型分为:有符号整型,和无符号整型
有符号整型:i8,i16,i32,i64
无符号整型:u8,u16,u32,u64
let a = 12;
let b: i8 = 128;// 溢出,i8取值范围()-128--127
let c: u8 = 256;//溢出
2)浮点型
ust 的浮点数类型是 f32 和 f64,分别占 32 位和 64 位。默认类型是 f64,因为在现代 CPU 中,它与 f32 速度几乎一样,不过精度更高。
let f = 12.5;
let f:f32 = 23.0;
浮点数采用 IEEE-754 标准表示。f32 是单精度浮点数,f64 是双精度浮点数。
数值运算
// 加法
let s= 59 + 10;
// 减法
let d = 5.5 - 4.3;
// 乘法
let p = 4 * 37;
// 除法
let q = 56.87 / 32.2;
// 取余
let r = 4389 % 5;
3)布尔类型
let b = false;
let b:bool = true;
4)字符类型
let a = 'c';
let b:char = 'g';
5) 字符串
Rust 的核心语言中事实上就只有一种字符串类型:str,字符串 slice,它通常以被借用的形式出现,&str。
字符串常量
const LANGUAGE: &'static str = "Rust";
字符串字面值
let language = "Rust";
// 转换到一个字符串
let s = language.to_string();
字符串类型
String 类型是由标准库提供的,它是可增长的、可变的、有所有权的、UTF-8 编码的字符串类型。
let language = String::from("Rust");
遍历字符串
for c in "hello,world".chars() {
println!("{}", c);
}
字符串 slice
使用 [] 和一个 range 来创建包含特定字节的字符串 slice:
let hello = "Зeeeeeeevdfbgth";
let s = &hello[0..4];
2.2 复合类型
1)元组(tuple
元组的定义
let tup: (i32, f64, u8) = (500, 6.4, 1);
let tup = (500, 6.4, 1);
元组的访问
访问通过点(.)进行访问元素
let tup = (500, 6.4, 1);
let a = tup.0;//500
let a = tup.2;//1
let a = tup.3;/错误
解构进行解析
let {x,y,z} = tup//x = 500,y = 6.4,z = 1
2) 数组(array)
数组的定义
let a = [1, 2, 3, 4, 5];
let a: [i32; 5] = [1, 2, 3, 4, 5];
数组的访问
let a = [1, 2, 3, 4, 5];
let first = a[0];
let second = a[1];
数组的遍历
let a = [1,2,3,4,5];
let b = [0;20];
for x in a.iter(){
println!("{}",x);
}
for x in b.iter(){
println!("{}",x)
}
数组的方法
1。获取数组长度
let a = [1,2,3,4,5];
let len = a.len();
2. 数组的切片
let a = [1,2,3,4,5];
let b = &a[2..4];
println!("{}",b[0]);//3