備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

ExactSizeIteratorを使う

コード

play.rust-lang.org

解説

RustのIteratorsize_hintという,イテレーションの回数の上限下限を返すメソッドがありますが,イテレーションの回数が確定している場合,素直にlenメソッドが欲しい場合があります.ExactSizeIteratorではlenメソッドが提供されています.こちらを使うと良いです.

ただし,lenメソッドは内部でsize_hintを呼び出しています.この上限下限が同じでないとパニックしますので,自分でsize_hintを定義しなければならない場合もあります.また,ExactSizeIteratorの実装には,Iteratorの実装が前提となっているので,両方のimplを書く必要があります.

参考

doc.rust-lang.org

doc.rust-lang.org