Rust语言有一些被认为是原生类型的数据类型。这意味着它们是语言内建的。Rust是这样的一种结构,这种结构是标准库在这些类型上提供了一些有用的类型,但是这些才是最原始的。
Booleans
Rust有一个内置的boolean类型,名为bool。有两个值:true和false:
let x = true;
let y: bool = false;
boolean型一个常用的地方是if 条件。
你可以从标准库文档中找到更多关于bool的信息。
char
char类型代表了一个Unicode范围的值。可以使用单引号(‘)创建字符:
let x = ‘x‘;
let two_hearts = ‘ ‘;
不像其他语言,这意味着Rust的字符不是单个字节,而是四个。
你可以从标准库文档中找到更多关于char的信息。
Numeric类型
Rust有几种整型:有符号和无符号、国定的和可变的、浮点型和整型。
这些类型包括两部分:种类和大小。例如,u16是一个无符号类型并且其大小为16位。位数越多数可以越大。
如果没有明确说明类型,保持默认:
let x = 42; // x has type i32
let y = 1.0; // y has type f64
这是不同数据类型的列表,每一个都连接到各个标准库的文档:
让我们分类复习它们:
有符号和无符号
整型有两种形式:有符号和无符号。为了理解他们的不同,我们先考虑一个4位的数,4为数能存储-8到+7之间的值。有符号数用补码表示。一个无符号数,因为它不需要存储负号,能存储从0到+19之间的数。
无符号型使用u表示,有符号型使用i标志。i代表integer。所以u8是一个无符号8位数,i8是一个有符号8位数。
固定大小类型
固定大小类型在他们的表示中有特定的为主。有效的为大小为8,16,32和64。所以来说u32是一个无符号32位整型,i64是一个有符号64位整数。
可变大小类型
Rust也提供了依赖底层机器的指针大小的类型。这些类型使用‘size’作为分类,并且有有符号和无符号之分。有两种类型:isize和usize。
浮点类型(Floating-point)
Rust有两种浮点类型:f32和f64。与IEEE-754单双精度数字相对应。