rust learnning record

Struct

Unit-like Struct

没有任何字段的结构体。如:

struct UnitLikeStruct;

Struct Update Syntax

可以利用已有结构体创建新的结构体。如:

struct Point {
    x: i32,
    y: i32,
    z: i31,
}

let p1 = Point { x: 0, y: 0, z: 0 };
let p2 = Point { x: 1, ..p1 };

类型详解

newtype 的使用

rust 中无法为外部类型实现外部特征,想要做到这一点,可以利用 newtype 将外部类型
包装成新的类型。如:

struct Wrapper(Vec<String>);

impl fmt::Display for Wrapper {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "[{}]", self.0.join(", "))
    }
}

类型别名

类型别名类似C语言中 typedef ,可以简化复杂的类型名称,方便使用。如:

type Result<T> = std::result::Result<T, std::io::Error>;