目次

Rustの勉強[クロージャ その4]

(更新: )ぎじゅつ

はじめに

#

NO IMAGEThe Rust Programming Language 日本語版 - The Rust Programming Language 日本語版
を読んでいる

  • 職場の後輩に読むのが早い理由は重要な部分が光って見えるとかいわれて横転
  • やってみるか

お勉強

#

メモ

#

NO IMAGE一連の要素をイテレータで処理する - The Rust Programming Language 日本語版

  • ここやる

  • 俺が文字を光らせる

  • ざっくり読んだ

  • イテレータには消費と生成があって独自実装もできるよってことらしい

  • よくわからんですね

  • とりあえずイテレータはVec<T>.iter()で呼べるらしい

  • nextで次行けるやつのイメージ

  • そもそもイテレータって生成するものなのか、たしかに

  • ん?forでiterを呼ぶと繰り返されるってあるけどVecもじゃね?

  • ざっくり調べたらiterだと借用しているらしい

  • ほんまかいな

pub trait Iterator {
    type Item;

    fn next(&mut self) -> Option<Self::Item>;

    // デフォルト実装のあるメソッドは省略
    // methods with default implementations elided
}

この定義は新しい記法を使用していることに注目してください:
type ItemとSelf::Itemで、 これらはこのトレイトとの関連型(associated type)を定義しています。
関連型についての詳細は、第19章で語ります。

  • お前そんなんばっかりじゃねーかよ
  • とりあえず無視する
  • とりあえずこのtraitはnextだけ実装してって書いてあるね

イテレータを消費

  • これなんのことだろう
  • あーnextつかうと戻れなくて次の結果しかないから、それを消費って呼んでるのね

nextを呼び出すメソッドは、消費アダプタ(consuming adaptors)と呼ばれます。

  • らしい
  • iter().sum()がイテレータを消費するって書いてあって、は?となりかけたがこれはイテレータにある関数っぽい
  • 全部の合計値ね

まとめ

#
  • イテレータの雰囲気わかってきた

  • イテレータがtraitなのおもしろい

  • 消費するって単語がしっくりこなかったが、nextすると中身が消えるのでたしかーにとなり理解

  • 読み方工夫してみた、次もやる

次はここ
NO IMAGE一連の要素をイテレータで処理する - The Rust Programming Language 日本語版