Rust 第三章 数据类型
Posted evilchan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust 第三章 数据类型相关的知识,希望对你有一定的参考价值。
Rust 第三章 数据类型
Rust中的每个值都是特定的数据类型,它告诉Rust指定了什么类型的数据,以便知道如何处理这些数据。我们将研究两个数据类型子集:标量和复合
标量
整数型
Length | Signed | Unsigned |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
signed十进制公式:-(2^(n-1)) ~ 2^(n-1)-1
unsigned十进制公式:0 ~ 2^(n-1)-1
进制
进制 | 例 | 十进制 |
---|---|---|
十进制 | 98_222 | 98222 |
十六进制 | 0xff | 255 |
八进制 | 0o77 | 63 |
二进制 | 0b1111_0000 | 240 |
字节(只能表示u8型) | b‘A‘ | 65 |
fn main() {
let x = 0xff;
println!("x: {}", x);
}
// x: 255
浮点数型
Length | type |
---|---|
32-bit | f32 |
64-bit | f64 |
fn main() {
let x = 2.0; // f64 自动类型推断 默认64位浮点数型
let y: f32 = 3.0; // f32
println!("x: {} y: {}", x, y);
}
// x: 2 y: 3
布尔型
bool表示,值为true或false
fn main() {
let flag = true;
println!("flag: {}", flag);
let flag: bool = !flag;
println!("flag: {}", flag);
}
// flag: true
// flag: false
字符型
Rust的 char 类型大小为 4 个字节,32位,代表 Unicode标量值,这意味着它可以支持中文,日文和韩文字符等非英文字符甚至表情符号和零宽度空格在 Rust 中都是有效的 char 值。
fn main() {
let person = ‘A‘;
let person: char = person;
println!("person: {}", person);
let person: u8 = b‘A‘;
println!("person: {}", person);
}
// person: A
// person: 65
复合
元组
fn main() {
let tup = (500, 6.4, 1);
let tup: (i32, f64, u8) = tup;
// 元组1
let (x, y, z) = tup;
println!("The value of x is: {}", x);
println!("The value of y is: {}", y);
println!("The value of z is: {}", z);
// 元组2
println!("x: {} y: {} z: {}", tup.0, tup.1, tup.2);
}
// The value of x is: 500
// The value of y is: 6.4
// The value of z is: 1
// x: 500 y: 6.4 z: 1
数组
fn main() {
// 数组
let a = [1, 2, 3, 4, 5];
// 声明数组
let a: [i32; 5] = a;
// 下标
let index = 4;
let element = a[index];
println!("The value of element is: {}", element);
// 有10个值,初始值为3的数组
let b = [3; 10];
// 数组循环
for item in &b {
println!("{}", item);
}
// 数组循环2
for item in b.iter() {
println!("{}", item);
}
}
// The value of element is: 5
// 3
// 3
// 3
// 3
// 3
// 3
// 3
// 3
// 3
// 3
以上是关于Rust 第三章 数据类型的主要内容,如果未能解决你的问题,请参考以下文章