Brown University 版本的 The Rust Programming Language 教程中,Generic 这一章节末尾提出了一个非常棒的 Quiz1。
假如某个 library 定义了如下 function 而我们不知道具体实现是什么:
1fn mystery<T>(x: T) -> T {
2 // ????
3}
当我们在代码中如此调用时,当然可以确定 foo 的类型,但是能确定值吗?
1let foo = mystery(42);
令人意外的是,foo 的值是唯一的。
Claude Sonnet 老师也在恍然大悟后直言「这正是理解 Rust 泛型系统的关键点之一」。