Rustメモ

Rustを使ってみた上でのただのメモです。

静的型付け言語

  • 型推論があるため型を明示する必要なし。ただし明示することもできる

変数束縛

  • 変数はデフォルトで「イミュータブル」。つまり値を変更できない。(だから「変数」ではなくあえて「変数束縛」と呼んでいる?)
  • 「ミュータブル」にしたければ、変数をミュータブル宣言(mut)しなければならない。
  • 未初期化の変数があっても警告のみ。ただし、未初期化の変数を使用しようとするとコンパイルエラー。

参照

  • 参照を安全に扱うことができる。
  • 参照はデフォルトでイミュータブル。ミュータブルにするにはmutを指定したうえで渡さなければならない。(例えば、ミュータブルな参照渡しは「&mut 変数名」と書く)

クレート

  • 他の言語ではパッケージとかライブラリと呼んでいるものをRustでは「クレート(=枠箱)」と呼ぶ。
  • Rustのパッケージシステムは、クレートを管理するので「Cargo(=船荷)」と名付けられている。
  • クレートは実行形式かライブラリ形式かに分かれる。(cargo newするときにどちらか指定したよね)

感想

  • コンパイル通すまでが大変
  • 参照周りが複雑。この言語における「参照を安全に扱う」とは「プログラマの意図せぬ動作をさせないようなプログラムが書ける」という意味で合ってるのかな?そうならば、影響範囲を的確に把握し制御したいプログラマにとっては、参照のイミュータブル/ミュータブルがコントロールできるRustに利点を感じるけれども、そうでないプログラマにとっては複雑で扱い難いと感じるかもしれない。
  • トレイトがよく分かっていないので要勉強。トレイトってちゃんと使ったことがないやも。。。実装の再利用するための機構という概念の理解しかできていない。