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>;