始めに
#NO IMAGE高度な型 - The Rust Programming Language 日本語版
を読んでいる
お勉強
#- 高度な型らしい
- 型システムはおもしろい
- ざっくり読んだが、まとまりがあるわけではなくHowtoっぽい
メモ
#ニュータイプパターン
- これは前回の概念なら外部のプロジェクトかクレートにある者どうしを組み合わせるためにwrapperを作って包むみたいな感じやった
- あー内部の型はシンプルだが、ラップして隠蔽することによって型として強制できるって話か
- これはいいな
型エイリアス
Box<Fn() + Send + 'static>これなんだ- trait boundっぽくね?となったがさらっと紹介されていたらしい
let f: Box<Fn() + Send + 'static> = Box::new(|| println!("hi"));
fn takes_long_type(f: Box<Fn() + Send + 'static>) {
// --snip--
}
fn returns_long_type() -> Box<Fn() + Send + 'static> {
// --snip--
}
- これを書き続けるのはつらい
type Thunk = Box<Fn() + Send + 'static>;
let f: Thunk = Box::new(|| println!("hi"));
fn takes_long_type(f: Thunk) {
// --snip--
}
fn returns_long_type() -> Thunk {
// --snip--
}
- だからこうやって書く
- とても理解できる
まとめ
#- 型システムおもろいな
- 多分一番好きな部分かもしれない