字符、布尔、单元 类型
字符类型(char)
对于字符类型我们有更大的自由性,概括一下:
- 更大的编码范围,让rust 可以展示更多的内容。
- 统一的字节空间,字符也是四个字节的内存大小。
- 严格区分的
""
和''
前者用于字符串、后者是字符。
fn test_math_4() {
let c = 'z';
let z = 'ℤ';
let g = '国';
let heart_eyed_cat = '😻';
let x = '中';
println!("字符'中'占用了{}字节的内存大小", std::mem::size_of_val(&x));
println!("{} \n{} \n{} \n{}\n", c, z, g, heart_eyed_cat);
}
fn main() {
test_math_4();
}
warning: `file23_06_28` (bin "file23_06_28") generated 4 warnings (run `cargo fix --bin "file23_06_28"` to apply 1 suggestion)
Finished dev [unoptimized + debuginfo] target(s) in 0.71s
Running `target\debug\file23_06_28.exe`
字符'中'占用了4字节的内存大小
z
ℤ
国
😻
PS C:\Users\97852\Desktop\ZryCode\CODE\Rust\file23_06_28
布尔类型(bool)
说明一点,bool
类型的应用场景 主要就是用在流程控制中,
fn test_math_5() {
let t = false;
let f: bool = true; // 使用类型标注,显式指定f的类型
if f {
println!("这是段毫无意义的代码");
}
}
fn main() {
test_math_5();
}
warning: `file23_06_28` (bin "file23_06_28") generated 6 warnings (run `cargo fix --bin "file23_06_28"` to apply 2 suggestions)
Finished dev [unoptimized + debuginfo] target(s) in 0.56s
Running `target\debug\file23_06_28.exe`
这是段毫无意义的代码
单元类型(()
)
美妙的新鲜内容。单元类型。
所谓单元类型,其实是一种语义补全,为了在rust 的强类型思想下,完成闭环。用来在一个没有返回的函数中用来隐式说明返回了什么,
用法也很简单,你看到的 main()
、println!()
,以及后面的发散函数(发散函数( diverge function )
,顾名思义,无法收敛的函数)也都是这个返回类型。
再比如,你可以用 ()
作为 map
的值,表示我们不关注具体的值,只关注 key
。 这种用法和 Go 语言的 struct{} 类似,可以作为一个值用来占位,但是完全不占用任何内存。