Deref
型強制を使った省力化について。
型強制では頻出の型変換を自動で行ってくれる。そして、自動化された変換の一つに、Deref
トレイトの参照を自動で辿る機能がある。
より具体的には、型 T
が Deref<Target = U>
の境界を持つ時に、&T
から &U
へと自動的に変換してくれる。
上記の仕様により、通常の参照型で複数種のスマートポインタに対応できる。
use std::rc::Rc;
fn main() {
test(&42);
test(&Box::new(42));
test(&Rc::new(42));
}
fn test(r: &i32) {
println!("{}", r);
}