<分区>
在Rust 1.27.0引入了一种新语法 - 添加了 dyn
关键字。
// old => new
Box<Foo> => Box<dyn Foo>
&Foo => &dyn Foo
&mut Foo => &mut dyn Foo
它的实际作用是什么?为什么添加它?
<分区>
在Rust 1.27.0引入了一种新语法 - 添加了 dyn
关键字。
// old => new
Box<Foo> => Box<dyn Foo>
&Foo => &dyn Foo
&mut Foo => &mut dyn Foo
它的实际作用是什么?为什么添加它?
最佳答案
这有助于区分特征/特征对象和结构; &Foo
, Box<Foo>
和 impl Bar for Foo
是模棱两可的,因为在所有这些Foo
可能是特征或结构。
加上 dyn
这不再是模棱两可的,因为特征由 dyn
区分关键词:
// trait objects (new dyn syntax)
&Foo => &dyn Foo
&mut Foo => &mut dyn Foo
Box<Foo> => Box<dyn Foo>
// structs (no change)
&Bar
&mut Bar
Box<Bar>
关于syntax - 为什么引入 dyn 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50987084/