Rust Common Trait

Send trait

  • Send trait允许在线程间转移所有权

Send是一种标记trait,绝大部分Rust类型都实现了Send trait。Send通常不需要手动实现,只要完全由Send的类型组成的类型,自然也是Send的。

Sync trait

  • Sync trait允许在多线程中访问引用

Sync也是一种标记trait,对于某类型T,若T的不可变引用&TSend的,则TSync的,即:&T: Send => T: Sync。此外,与Send一样,完全由Sync的类型组成的类型,也是Sync的。

Sized trait

  • Sized trait决定了一个类型的大小是否在编译时可知

Rust编译器自动为在编译时已知大小的类型实现Sized trait。此外,Rust还为每个泛型函数隐式的增加了Sized bound。对于动态大小类型,可以使用?Sized来覆盖默认规则以放宽限制,其中?Trait语法只能用于Sized trait。

相关文章