Rust 学习笔记:关于泛型的练习题
Rust 学习笔记:关于泛型的练习题
- Rust 学习笔记:关于泛型的练习题
- 问题 1
- 下面代码能否通过编译?若能,输出是?
- 下面代码能否通过编译?若能,输出是?
Rust 学习笔记:关于泛型的练习题
参考视频:
- https://www.bilibili.com/video/BV1JJCVYSEg6
问题 1
答:3。
下面代码能否通过编译?若能,输出是?
fn print_slice<T>(v: &[T]) {for x in v {println!("{}", x);}
}fn main() {print_slice(&[1, 2, 3, 4]);
}
答:不能通过编译。T 必须约束为实现了 Display trait 才能 print。
下面代码能否通过编译?若能,输出是?
struct Point<T> {x: T,y: T,
}impl Point<i32> {fn f(&self) -> &i32 {&self.y}
}impl<T> Point<T> {fn f(&self) -> &T {&self.x}
}fn main() {let p: Point<i32> = Point { x: 5, y: 10 };println!("{}", p.f());
}
答:不能通过编译。因为泛型不可以和具体类型使用同名函数。