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个元素

}

 



本文发布于 https://luojia.me

本站文章未经文下加注授权不得拷贝发布。

本博客使用Disqus评论系统,如果看不到评论框,请尝试爬墙。