Rust中的数据类型

在本文中,将介绍Rust中的整型、浮点型、布尔类型、字符类型、元组类型、数组类型的声明和简单使用方法;

Rust属于静态类型语言,在编译时就必须知道所有变量的类型;有时变量没有指定类型,编译器也可以根据值及其使用方式,推断出其类型;

整型

fn main() {
    let _a = 5; //默认为i32
    let _b:i8 = -12;
    let _c:u8 = 255;
    let _d:i16 = -666;
    let _e:u16 = 666;
}
长度 有符号整型 无符号整形
8bit i8 u8
16bit i16 u16
32bit i32 u32
64bit i64 u64
128bit i128 u128

可以是多种数字类型的数字面值允许使用类型后缀,例如:255u8表示8位无符号整型;

    let _a = 255u8;

也可使用_作为分隔符以方便阅读;

    let _a:u32 = 133_333_333; // 133333333
    let _b:u8 = 0b1111_0000; //240

Rust中整型的字面值

十进制 123,123_45
十六进制 0xffff
八进制 0o77
二进制 0b1111_0000
Byte(仅限于u8) b'a'

浮点型

Rust中有两个浮点型类型f32f64,分别占32位和64位,用于表示带小数点的数;f32是单精度浮点数,f64是双精度浮点数;

    let _x = 3.14159; //默认为f64
    let _y:f32 = 5.20; //f32
    let _z:f64 = 6.66; //f64

所有的浮点型都是有符号的,不存在无符号浮点型;

布尔型

Rust中的布尔类型用bool表示,有truefalse两个值;

    let _x = true; //编译器能推断类型为bool
    let _y:bool = false;

字符类型

Rust中使用char表示字符类型;

    let _c = 'a';
    let _z:char = 'b';

元组类型

在Rust中,使用包含在圆括号中的逗号分隔的值列表来创建一个元组,元组中的每一个位置都有一个类型,这些不同值得类型也不必是相同得;

    let tup: (i32, f64, i8) = (123, 3.14159, -1);

元组的长度是固定的,一旦声明,其长度不能增大或减小;

访问元组中的元素

    let tup: (i32, f64, i8) = (123, 3.14159, -1);
    let (x,y,z) = tup;//x=123,y=3.14159,z=-1
    let a = tup.0; //a=123
    let b = tup.1; //b=3.14159
    let c = tup.2; //c=-1

数组类型

在Rust中,将数组的值写在方括号内,用逗号分隔;与元组不同,数组中的每个元素必须相同;Rust中数组的长度是固定的;

    let a = [1,2,3,4,5];
    let b:[i32;5]=[4,5,6,7,8]; //i32表示元素类型,5表示元素数量
    let x = [8;6]; //x包含6个元素,这些元素的初始值都为 8

访问数组中的元素

    let a = [1,2,3,4,5];
    
    println!("first number: {}",a[0]);

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/rust-data-types.html

分类: 计算机技术
推荐阅读:
Python中双前导下划线__var的正确理解 近期作者发现很多Python学习者居然把双前导下划线(也就是双下划线前缀)理解成私有属性了,甚至是很多Python教程中也这么理解,这让作者感到惊讶。
C语言中fopen()函数"w"和"w+"mode参数有什么不同? fopen()是C语言标准库的一部分,参数mode字符串表示文件的访问模式;w和w+模式有略微不同:
TypeError: 'str' object does not support item assignment 解决方法 引起 TypeError: 'str' object does not support item assignment 错误是因为尝试以下标的方式修改字符串导致的;在Python中,字符串是不可变类型,不能通过下标的方式直接更改某一字符;
C程序计算二阶行列式的值 本文将使用C语言编写程序计算二阶行列式的值;程序通过定义一个2*2数组用于存储输入的二阶行列式;再通过前文的公式计算出二阶行列式的值;
PyQt6和PySide6对比 PyQt6和PySide6都是用于调用Qt6 API的Python库,使用它们可以轻松在Python语言中创建基于Qt的GUI程序;PyQt6和PySide6最大的不同表现在发行许可上;
Python生成n个元素的全排列 本文将使用Python语言编写程序生成n个元素的全排列,代码不使用第三方库;