Rust 学习笔记:关于泛型的练习题

Rust 学习笔记:关于泛型的练习题

Rust 学习笔记:关于泛型的练习题

参考视频:

  1. https://www.bilibili.com/video/BV1JJCVYSEg6

问题 1

答:3。

下面代码能否通过编译?若能,输出是?

rust 复制代码
fn print_slice<T>(v: &[T]) {
    for x in v {
        println!("{}", x);
    }
}

fn main() {
    print_slice(&[1, 2, 3, 4]);
}

答:不能通过编译。T 必须约束为实现了 Display trait 才能 print。

下面代码能否通过编译?若能,输出是?

rust 复制代码
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());
}

答:不能通过编译。因为泛型不可以和具体类型使用同名函数。

相关推荐
JoannaJuanCV1 天前
error: can‘t find Rust compiler
开发语言·后端·rust
Kiri霧2 天前
在actix-web应用用构建集成测试
后端·rust·集成测试
muyouking112 天前
Tauri Android 开发踩坑实录:从 Gradle 版本冲突到离线构建成功
android·rust
Kiri霧2 天前
Rust开发环境搭建
开发语言·后端·rust
xuejianxinokok2 天前
什么是代数类型 ? java为什么要添加record,Sealed class 和增强switch ?
后端·rust
Kiri霧3 天前
在actix-web中创建一个提取器
后端·rust·web
^_^ 纵歌3 天前
rust主要用于哪些领域
开发语言·后端·rust
l1t3 天前
测试DuckDB电子表格读取插件rusty_sheet 0.2版
数据库·rust·插件·xlsx·duckdb
嚴寒3 天前
被10个终端窗口逼疯后,我用Rust写了个零依赖跨平台终端Agent启动神器
rust·agent
alwaysrun4 天前
Rust中模式匹配
rust·match·模式匹配·if let·while let·值绑定