Rust the book - 第6章

Posted by johtani on Tuesday, April 7, 2020

目次

前回の記事はこちら。自分用のメモなので、読みにくいかもです。

第6章

Enumです。match式に大活躍

Enumを定義する

  • 列挙型は取りうる値をすべて列挙できる。これが名前の由来
  • 列挙型と列挙子
    • 2連コロン(::)で列挙子を指定可能
  • 列挙子にデータ(構造体も)が格納可能。
  • 疑問:Write(String)とかはタプルの表現になるのかな?
    • と思ったが、タプルでは1つだけの変数を持つものは定義(正確には定義できるが、内部で普通の変数にもどされてるっぽい)できなかった。
  • メソッド定義も可能
    • 関連関数もできる? -> できる

Optionの紹介

  • Rustにnullはない。代わりにOptionがある
  • Noneを指定する場合に型が必要。Someの場合はすでに値が入るから推測可能なため。

match制御フロー演算子

  • アーム -> matchしたときの処理のこと
    • 短い場合は波括弧は不要
  • returnなしでmatchが書いてあるだけだと、慣れない場合に値を返していることに気づかないかも(実際気づけてないかも)
  • Enumが値を持っているときに、値の束縛がmatch式で可能
  • すべての列挙子を網羅していないことをコンパイラが検知してくれるのはすごく助かる。
    • ただし、_を利用していなければだけど

if letで簡潔な制御フロー

  • enumで1つのパターンのときに処理をしたい場合に使えるmatchの糖衣構文
  • elseもかけるよ。

まとめ

enumに慣れていないので、値や構造体を持つenumを利用するという想像ができないことがありそうだなぁと読みながら思いました。 それになれると、色々とプログラムがシンプルに書ける部分が多くなりそうかな。


comments powered by Disqus

See Also by Hugo


Related by prelims-cli