rust学习笔记(2)

类型

有符号整数(signed integers):i8、i16、i32、i64、i128 和 isize(指针宽度)
无符号整数(unsigned integers): u8、u16、u32、u64、u128 和 usize(指针宽度)
浮点数(floating point): f32、f64
char(字符):单个 Unicode 字符,如 'a','α' 和 '∞'(每个都是 4 字节)
bool(布尔型):只能是 true 或 false
单元类型(unit type):()。其唯一可能的值就是 () 这个空元组

  • 类型不可改变
  • 类型可能根据上下文内容推导出来

数字类型

可以在数字中添加下划线, 例如 1_000

元组

使用 () 来表示元组, 使用 tuple.0 来访问第一个下标位置

  • 元组内部的元素的类型可以不一致, 元组可以嵌套

可以使用解构语法

    // 元组可以被解构(deconstruct),从而将值绑定给变量
    let tuple = (1, "hello", 4.5, true);

数组

存放的是相同的数据类型, 并且在内存中是连续的

数组的类型标记为 [T; length](译注:T 为元素类型,length 表示数组大小)。

    // 定长数组(类型标记是多余的)
    let xs: [i32; 5] = [1, 2, 3, 4, 5];

    // 所有元素可以初始化成相同的值
    let ys: [i32; 500] = [0; 500];

使用 arr[1..2] 实现数组的切片

自定义类型

struct: 定义一个结构体(structure)
enum: 定义一个枚举类型(enumeration)

struct

// 元组结构体
struct Pair(i32, f32);

给自己预先设定的元组一个名字, 同时, 一个有名字的元组的结构需要使用 let Pair(integer, decimal) = pair; 实现

  • 结构体支持组合
    let _rectangle = Rectangle {
        // 结构体的实例化也是一个表达式
        top_left: Point { x: left_edge, y: top_edge },
        bottom_right: bottom_right,
    };

实例化一个结构体

enum

枚举类型的自定义对象可以通过 :: 来获取(可以携带参数等)

别名

别名使用 type Operations = VeryVerboseEnumOfThingsToDoWithNumbers; 创建

// 创建一个 `enum`(枚举)来对 web 事件分类。注意变量名和类型共同指定了 `enum`
// 取值的种类:`PageLoad` 不等于 `PageUnload`,`KeyPress(char)` 不等于
// `Paste(String)`。各个取值不同,互相独立。
enum WebEvent {
    // 一个 `enum` 可以是单元结构体(称为 `unit-like` 或 `unit`),
    PageLoad,
    PageUnload,
    // 或者一个元组结构体,
    KeyPress(char),
    Paste(String),
    // 或者一个普通的结构体。
    Click { x: i64, y: i64 }
}

use

使用 use 方便开发的时候少写一些内容

    // 显式地 `use` 各个名称使他们直接可用,而不需要指定它们来自 `Status`。
    use Status::{Poor, Rich};
    // 自动地 `use` `Work` 内部的各个名称。
    use Work::*;

常量

// 全局变量是在所有其他作用域之外声明的。
static LANGUAGE: &'static str = "Rust";
const  THRESHOLD: i32 = 10;
posted @   xuhe2  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示