字符、布尔、单元 类型
字符类型(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{} 类似,可以作为一个值用来占位,但是完全不占用任何内存。