Scribble at 2021-12-14 16:57:53 Last modified: 2021-12-14 17:18:07

添付画像

Rust は多くの実装例が増えている流行の開発言語の一つであり、僕も以前に Apress から出ている "Beginning Rust: From Novice to Professional" (Carlo Milanesi, 2018) を良い入門書として紹介したことがある。しかし、いま2022年になろうとしている現在では、この本を入門書として勧めることはできなくなりつつある。

その理由の一つは、もちろん出版から3年が経過しているあいだに Rust のコンパイラもアップデートが繰り返されていて、本書に掲載されているコードの一部は、初心者にとってすぐに理由が分からないエラーを吐くようになっているからだ。その筆頭は、enum というデータ型(C言語では「列挙体」と言う)である。たとえば、

enum Trees { Maple, Olive }

これは、単独で書くとコンパイル時に "enum is never used" エラーが出るため、let a = Trees::Maple; のように適当な variable を作るとしても、次に "variant is never constructed" として全ての variant について variable を作って実際に制御構造で使わないとエラーが続々と出てくる。したがって、enum 体型のデータを作ると、全ての要素を何らかの variable として割り当てて、何らかの仕方で制御構造において使わなければいけない。"Beginning Rust" の p.84 のコードを一例として挙げるなら、コンパイル時にエラーを出さないよう修正するには、上記画像のように、全ての enum データ型の要素を variable として使うことが求められる。面倒臭い仕様だ。WBS のように冗長性と遺漏のない〈ちょうど〉が求められるため、逆にセキュア・コーディングという観点では堅い設計になるとは言えるが、面倒臭い。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook