一、原生类型
Rust 提供了多种原生类型,主要包括:标量类型、复合类型。
1.1 标量类型
包含以下几种:
- 有符号整数:i8、i16、i32、i64、i128 和 isize。
- 无符号整数: u8、u16、u32、u64、u128 和 usize。
- 浮点数: f32、f64。
- char:单个 Unicode 字符。
- bool:true 或 false。
- 单元类型:()。其唯一可能的值就是 () 这个空元组。
1.2 复合类型
包含以下几种:
- 数组:如[1, 2, 3]。
- 元组:如(1, ‘a’,true)。
1.3变量定义
定义变量时,可以显示指定变量的类型,rust还可以根据上下文来推断类型。数字还可以通过后缀来声明变量的类型。当未指定变量类型,而且无法根据上下文推断时,按默认方式声明类型,其中整型默认为 i32 类型,浮点型默认为 f64类型。
变量绑定默认是不可变的,如果需要可变绑定,则需要加上mut修饰符。
以下是变量定义样例:
fn main() {
//显示指定变量的类型
let logical: bool = true;
//后缀声明类型
let an_integer = 5i32;
//默认方式声明类型
let default_float = 3.0; //浮点型默认为f64
let default_integer = 7; //整型默认为i32
//根据上下文自动推断类型
let mut inferred_type = 12; //根据下一行的赋值推断为i64类型
inferred_type = 4294967296i64;
//可变变量,其值可以改变。
let mut mutable = 12;
mutable = 21;
}
二、字面量和运算符
2.1字面量
字面量是用于表示常量的一种方法。如:整数、浮点数以及字符串常量等。
数字可以通过加前缀 0x、0o、0b来分别表示十六进制、八进制或二进制。也可以使用数字加类型后缀的方式来声明字面量的类型。为了改善易读性,还可以在数值字面量中插入下划线,比如:1_000 等同于1000,0.000_001等同于0.000001。
以下是样例:
fn main() {
//字面量通过后缀表示类型
let a = 7u8;
let b = 5.4f64;
let c = 32i32;
//字面量通过前缀表示进制
let d = 0b1; //二进制