#default #syntax #shorter #initialization #traits #struct #complex

default_is_triple_underscore

Default::default() 的简写语法:___()

4 个版本

新版本 0.2.0 2024 年 8 月 5 日
0.1.2 2024 年 8 月 5 日
0.1.1 2024 年 7 月 5 日
0.1.0 2024 年 7 月 5 日

27#complex 中排名

Download history 181/week @ 2024-07-03 19/week @ 2024-07-10 158/week @ 2024-07-31

每月下载 187

MIT OR Apache-2.0 OR MPL-2.0

5KB

一种 更短 的写 default 的方法。提供

  • ___() 作为 Default::default() 的缩写
  • i32::___() 代替 i32::default()

基于 Rust 内部讨论

还可以查看使用 default() 而不是 Default::default()Defaults crate

示例

let b : i32 = Default::default(); // Default Rust
let a : i32 = ___(); // Now
assert_eq!(a, b);

也可以与函数一起使用

let a = f(Default::default()); // Default Rust
let b = f(___()); // Now
assert_eq!(a, b);

也可以在实现 Default 特性时初始化复杂的 Rust 结构体

impl Default for ComplexeStruct {
    fn default() -> Self { 
    Self { a : ___(), b : ___(), c : ___(), vec : vec![0] }
    //  instead of
    // Self { a : Default::default(), b : Default::default(), c : Default::default(), vec : vec![0] }
    }
}

统一语法:MyStruct::___() 代替 MyStruct::default()

type T = i32; // any type with default
assert_eq!(T::default(), T::___());

无运行时依赖