rust中的pin是不是一个失败的设计?
不是。
太长不看版:“是否可以移动”应该是位置的特性,而不是类型的特性(来自Without Boats 的文章《 Pinned places 》)。
Rust 默认所有类型都是可移动的,也就是说,任何值的所有权都可以被转移到其它位置,因此必须使用 Pin 来证明其包裹的指针所指的值不会被转移到其它位置。
如果不考虑向后兼容,重新设计rust语言,很多人认为更好的设计应该是:所有类型都默认应该是不可移动的,除非它有Move特性。
这样的话,一个类型 T…。