RustのIterator周り
/mrsekut-book-4873118557/340 (15章 イテレータ)
#wip
用語
iterator
Iterator traitを実装した型のこと
反復処理そのもの
iterable
IntoIterator traitを実装した型のこと
item
iteratorが生成する値のこと
consumer
itemを受け取るコード
e.g. for
iterator adapter
Iterator traitが生やしているmethodのこと
DoubleEndedIterator
/mrsekut-book-4873118557/356 (15.3.8 反転可能イテレータとrev)
列の両側からアイテムを引き出せるやつ
.rev()
Vec<T>のiter()
Vecをmoveしない
Vec<T>のiter_mut()
Vecをmoveする
これらは、traitで定義されたmethodではない
多くのコレクション型が独自に定義している
その型に対する自然なiteratorを返す
drain()
/mrsekut-book-4873118557/346 (15.3 イテレータアダプタ)
count
/mrsekut-book-4873118557/363 (15.4 イテレータの消費)
sum, product
/mrsekut-book-4873118557/363 (15.4 イテレータの消費)
max, min
/mrsekut-book-4873118557/363 (15.4 イテレータの消費)
max_by, min_by
max_by_key, min_by_key
any, all
/mrsekut-book-4873118557/366 (15.4.6 any,all)
position, rposition
/mrsekut-book-4873118557/366 (15.4.6 any,all)
Array.prototype.findIndexのようなやつ
rpositionは右からやる
find
/mrsekut-book-4873118557/368 (15.4.9 nth)
fold
/mrsekut-book-4873118557/367 (15.4.8 fold)
rfoldもあるらしい
nth
/mrsekut-book-4873118557/368 (15.4.9 nth)
last
/mrsekut-book-4873118557/368 (15.4.9 nth)
/mrsekut-book-4873118557/369 (15.4.12 コレクションの作成: collectとFromIterator)
Extend trait
/mrsekut-book-4873118557/371 (15.4.13 Extendトレイト)
/mrsekut-book-4873118557/372 (15.5 独自イテレータの実装)
table:_
Haskell Rust 説明
null is_empty() 空かどうか確認
concat v.concat() ネストされた配列を平坦化
elem v.contains(&x) 要素が含まれるか確認
partition `v.iter().partition( x
groupBy `v.group_by( a, b
nub v.iter().unique() 重複を取り除く
replicate n x vec![x; n] 要素をn回繰り返したリストを生成
splitAt n v.split_at(n) 指定した位置でリストを分割
isPrefixOf v.starts_with(prefix) 指定されたリストが接頭辞か確認
isSuffixOf v.ends_with(suffix) 指定されたリストが接尾辞か確認