Rust 程序设计语言 简体中文版 1.85.0示例 18-4 定义了一个存放了名叫 components 的 vector 的结构体 Screen。这个 vector 的类 型是 Box,此为一个 trait 对象:它是 Box 中任何实现了 Draw trait 的类型的替身。 文件名:src/lib.rs pub struct Screen { pub components: Vec > Draw>>, } 示例 18-4: 一个 Screen 结构体的定义,它带有一个字段 components,其包含实现了 Draw trait 的 trait 对象的 vector 在 Screen 结构体上,我们将定义一个 run 方法,该方法会对其 components 上的每一个组件调 用 draw 方法,如示例 18-5 所示: 文件名:src/lib.rs impl Screen { pub fn run(&self) { for component in self.components.iter() { component.draw(); } } } 示例 18-5:在 Screen 上实现一个 run 方法,该方法在每个 component 上调用 draw 方法 这与定义使用了带有 trait bound 0 码力 | 562 页 | 3.23 MB | 23 天前3
共 1 条
- 1













