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());
}

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

相关推荐
传奇开心果编程6 小时前
【Rust入门练中学】第6课:结构体与方法
开发语言·rust·结构体·编程语言理论·结构体方法·编程通用语言
本地化文档7 小时前
cutile-rs-book-l10n
rust·gpu·nvidia·cuda·sphinx·crowdin
qq_4069810310 小时前
大白话rust系列09 函数调用两次有什么错?
开发语言·python·rust
康小旺11 小时前
TypeScript 编译器开始卷 Rust 了:Cloudflare 的 tsrs 到底想干嘛?
rust·typescript
Norna11 小时前
时间轮的 +1,为什么最后只留在顶层
rust
轻舟技术A17 小时前
Rust 重写 Pi:会话启动耗时降 91%,就绪内存少 78%
开发语言·后端·rust
unconditional18 小时前
外部命令改不了你的 shell:sdkm 怎么做到"回车即生效"
rust·开源
程工造Agent18 小时前
从 0 到 1 学 Codex 源码:为什么 let b = a 之后,a 就不能用了?
rust·ai编程
Norna18 小时前
方差怎么会是 −32:nushell math variance 的一次数值修复
rust
JavaPub-rodert18 小时前
王仕宇分享:Oxigraph 是什么?用 Rust + RocksDB 搭一个轻量 RDF/SPARQL 知识图谱数据库
数据库·rust·知识图谱