// dictionary
ジェネリクス(Generics).
ジェネリクス(Generics)
ジェネリクスは、型パラメータを使用して汎用的なコードを書く機能です。同じロジックを複数の型に対して利用できます。
ジェネリック関数
fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
let mut largest = list[0];
for &item in list.iter() {
if item > largest {
largest = item;
}
}
largest
}
fn main() {
let numbers = vec![34, 50, 25, 100];
println!("{}", largest(&numbers));
let chars = vec!['a', 'z', 'm'];
println!("{}", largest(&chars));
}
ジェネリック構造体
struct Point<T> {
x: T,
y: T,
}
impl<T> Point<T> {
fn x(&self) -> &T {
&self.x
}
}
パフォーマンス
Rustのジェネリクスは**単相化(monomorphization)**により、コンパイル時に具体的な型ごとのコードが生成されます。そのため、実行時のオーバーヘッドはありません。
BoxやRc<T> (Reference Counting)で動的ディスパッチが必要な場合と異なる特性です。
この辞書が使われているページ
backlinks 1