syntax - 为什么引入 dyn 语法?

标签 syntax rust keyword

<分区>

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/

相关文章:

api - 演讲中的关键词发现

android - Kotlin 相当于 Swift 的 defer 关键字

ruby - [square brackets] 在 Ruby 中有哪些不同用途?

php - 翻译 phpmyadmin 语法 table.field

multidimensional-array - ndarray : Iterate over shuffled rows

rust - 找不到目标 thumbv7em-none-eabihf 的 sin()、cos()、log10()( float )

Python:列表理解中的 'as' 关键字?

Swift 2 if 具有关联值的枚举的大小写语法

mongodb - 如何查询嵌套对象?

types - 强制转换产生无效指针的函数引用?