再学rust我就是狗
汪汪汪
再学rust我就是狗
汪汪汪
之前就有点感兴趣,现在又仔细看了以下,并做个笔记。(并不是表示我要学会,只是稍作了解。这种编译型静态类型语言我还是更倾向用c++)
下面变量全都加了下划线前缀是因为变量定义了不使用的话编译器会给出警告,除非加了_前缀。
fn main(){
//整数
let _a=1;
let _e:u8=128;//unsigned 8bit int (类型定义在变量名后)
//以下几个是类型跟在数据后
let _c=128u8;//unsigned int 8bit
let _f=123i16;//signed int 16bit
let _g=123i32;//signed int 32bit
let _h=123i64;//signed int 64bit
let _i=123isize;//signed int,位数与cpu通用寄存器位宽相关
let _j=123usize;//unsigned int ,同上
//分隔符_,不影响内容
let _d1=98_22_2;//98222
//其它进制表示
let _h1=0xff;//16进制
let _o1=0o77;//8进制
let _b1=0b11111111;//2进制
let _byte1=b'A';//用char表示的unsigned int 8
//32和64位浮点数,同样为两种类型定义方式
let _f1:f32=2.0;
let _f2:f64=2.0;
let _f3=2.0f32;
let _f4=2.0f64;
//bool
let _boo1=false;
let _boo2:bool=false;
//字符
let _s1='a';
let _s1_1:char='a';
let _s2:char='🐱';//rust中的char不是单纯的ascii字符,而是Unicode标量
let _s3="abcd";//静态字符串
//元组
let _tup:(i32, f64, u8) = (500, 6.4, 1);
let _tup2 = (500:i32, 6.4:f64, 1:u8);//实验性写法,可能会取消或加入规范,不建议使用
let _tup3=(1,2,3);//自动判断类型
let (_x, _y, _z) = _tup;//元祖解构,获得_x,_y,_z三个变量
let (_x2, _y2, _z2) = (1i32,1i64,1isize);//吃饱了撑的写法,和定义三个变量并赋值等效
let _tup0=_tup.0;//获取元祖的第0个元素
//数组
let _arr = [1, 2, 3, 4, 5];
let _arr2=["a","b","c"];
let _arr3: [i32; 5] = [1, 2, 3, 4, 5];//声明数组的数据类型以及数据数量
let _arri0=_arr[0];//获取数组第0个元素
}