九龙坡网站建设公司163邮箱登录页面
Rust 学习笔记:关于 OOP 和 trait 对象的练习题
- Rust 学习笔记:关于 OOP 和 trait 对象的练习题
 - 问题一
 - 问题二
 - 问题三
 
Rust 学习笔记:关于 OOP 和 trait 对象的练习题
参考视频:
- https://www.bilibili.com/video/BV1LsdGY6E7H
 
问题一
以下哪一项是 Rust 实现的面向对象特性?
A. 继承父类的方法
 B. 带有方法的对象
 C. 私有数据的封装
答:B、C。
问题二
以下代码能否通过编译?若能,输出是?
use std::fmt::Debug;fn main() {let n = 1;let s = String::from("Hello");let v: Vec<&dyn Debug> = vec![&n, &s];let n_ref = v[0] as &i32;println!("{}", n_ref + 1);
}
 
答:不能通过编译。
报错:

问题三
考虑以下两种实现泛型函数的方式:
fn f_opt1<T: SomeTrait>(t: &T) {}
fn f_opt2(t: &dyn SomeTrait) {}
 
在大多数情况下,以下哪些是偏好选择 trait 对象版本 f_opt2 的理由?
A. 更高的运行时性能
 B. 更快的编译速度
 C. 更小的二进制体积
 D. 更好的开发体验
答:B、C。
