{"content":{"title":"03｜变量与数据类型","body":"本章介绍的数据类型都是rust中的基本数据类型。\r\n\r\n## 基本数据类型\r\n\r\n### 整型\r\n\r\n#### 有符号\r\n\r\n- i8:有符号8位整型\r\n- i16:有符号16位整型\r\n- i32:有符号32位整型\r\n- i64:有符号64位整型\r\n- i128:有符号128位整型\r\n- isize:依赖于运行程序的计算机架构，32位架构是32位，64位架构是64位\r\n\r\n#### 无符号\r\n\r\n- u8:无符号8位整型\r\n- u16:无符号16位整型\r\n- u32:无符号32位整型\r\n- u64:无符号64位整型\r\n- u128:无符号128位整型\r\n\r\n- usize:依赖于运行程序的计算机架构，32位架构是32位，64位架构是64位\r\n\r\n### 浮点型\r\n\r\n- f32:32位的浮点数类型\r\n- f64:64位的浮点数类型\r\n\r\n### 布尔类型\r\n\r\n- bool:布尔类型，true或者false\r\n\r\n### 字符型\r\n\r\n- char:字符类型\r\n\r\n### 数组类型\r\n\r\n- array:固定长度的数组类型，[T;N] T表示元素类型，N表示表示编译期大小，数组元素个数，，或者数组长度。\r\n\r\n### 函数指针\r\n\r\n- fn:函数指针\r\n\r\n### 单元类型\r\n\r\n- unit:单元类型，返回这个即可（）\r\n\r\n### 指针类型\r\n\r\n- pointer:指针类型\r\n\r\n### 引用类型\r\n\r\n- reference:引用类型\r\n\r\n### slice类型\r\n\r\n- slice:slice切片类型\r\n\r\n### str类型\r\n\r\n- str:字符串切片\r\n\r\n### 元组类型\r\n\r\n- tuple:元组类型\r\n\r\n### never类型\r\n\r\n- never:never类型\r\n\r\n## 变量定义与使用\r\n\r\n```rust\r\n// datatype.rs\r\n\r\nfn main() {\r\n    // 定义整型\r\n    let ia: i8 = 0;\r\n    let ib: i16 = 1;\r\n    let ic: i32 = 3;\r\n    let id: i64 = 4;\r\n    let ie: i128 = 6;\r\n\r\n    let ua: u8 = 0;\r\n    let ub: u16 = 1;\r\n    let uc: u32 = 3;\r\n    let ud: u64 = 4;\r\n    let ue: u128 = 6;\r\n\r\n    println!(\"ia = {}, ib = {}, ic = {}, id = {}, ie = {}\", ia, ib, ic, id, ie);\r\n    println!(\"ua = {}, ub = {}, uc = {}, ud = {}, ue = {}\", ua, ub, uc, ud, ue);\r\n\r\n    // 定义浮点型\r\n    let a_f64: f64 = 12.34;\r\n    let a_f32: f32 = 0.12;\r\n\r\n    println!(\"a_f64 = {}, a_f32 = {}\", a_f64, a_f32);\r\n\r\n    // 定义布尔\r\n    let flag = true;\r\n    println!(\"flag = {}\", flag);\r\n\r\n    // 定义字符类型\r\n    let c: char = 'a';\r\n    println!(\"c = {}\", c);\r\n\r\n    // 定义数组\r\n    let arr: [i32;2] = [12,23];\r\n    println!(\"arr = {:?}\", arr);\r\n\r\n    // 定义指针类型\r\n    let a_source = 32;\r\n    let ptr: *const i32 = &a_source;\r\n    println!(\"ptr = {:?}\", ptr);\r\n\r\n    // 定义引用类型\r\n    let five = 5;\r\n    let other = &five;\r\n    println!(\"five = {}, other = {}\", five, other);\r\n\r\n    // 定义slice切片类型\r\n    let vec = vec![1,2,3];\r\n    let a_slice = &vec[..];\r\n    println!(\"a_slice = {:?}\", a_slice);\r\n\r\n    // 定义 字符串 str类型\r\n    let ss: &'static str = \"hello\";\r\n    println!(\"ss = {}\", ss);\r\n\r\n    // 定义元组类型\r\n    let (a,b,c) = (false, 12, 3.5);\r\n    println!(\"a = {}, b = {}, c = {}\", a, b, c);\r\n}\r\n\r\n```"},"author":{"user":"https://learnblockchain.cn/people/1509","address":null},"history":null,"timestamp":1686191936,"version":1}