01-函数
函数 — Rust By Example
2 分钟阅读
译文 · 基于 Rust By Example
原文链接: https://doc.rust-lang.org/stable/rust-by-example/generics.html
泛型(generic)是关于泛化类型和函数功能,以扩大其适用范围的话题。泛型极大地减少了代码的重复,但它自身的语法很要求细心。也就是说,采用泛型意味着仔细地指定泛型类型具体化时,什么样的具体类型是合法的。泛型最简单和常用的用法是用于类型参数。
译注:定义泛型类型或泛型函数之类的东西时,我们会用
<A>或者<T>这类标记 作为类型的代号,就像函数的形参一样。在使用时,为把<A>、<T>具体化,我们 会把类型说明像实参一样使用,像是<i32>这样。这两种把(泛型的或具体的)类型 当作参数的用法就是类型参数。
泛型的类型参数是使用尖括号和大驼峰命名的名称:<Aaa, Bbb, ...>
来指定的。泛型类型参数一般用 <T> 来表示。在 Rust 中,“泛型的” 除了表示类型,还表示可以接受一个或多个泛型类型参数 <T> 的任何内容。任何用泛型类型参数表示的类型都是泛型,其他的类型都是具体(非泛型)类型。
例如定义一个名为 foo 的 泛型函数,它可接受类型为 T 的任何参数 arg:
| |
因为我们使用了泛型类型参数 <T>,所以这里的 (arg: T) 中的 T 就是泛型类型。即使 T 在之前被定义为 struct,这里的 T 仍然代表泛型。
下面例子展示了泛型语法的使用:
| |
函数 — Rust By Example
实现 — Rust By Example
trait — Rust By Example
约束 — Rust By Example
多重约束 — Rust By Example
where 子句 — Rust By Example
newtype 惯用法 — Rust By Example
关联项 — Rust By Example
虚类型参数 — Rust By Example