Rust (プログラミング言語)
Rustのライブラリはクレート(crate)という呼称で提供される。多くのクレートはcrates.ioで公開されている。同サイトはバージョン毎のソースコードをアーカイブとして提供している。クレートは必ずしもcrates.ioに登録されている必要はなく、Webサーバやファイルシステムを指すURIで指定することもできる。ライブラリはソースコードプロジェクトで配布されることが一般的だが、コンパイルしたバイナリライブラリファイル(拡張子rlib)で出力することも可能である。
変数はletキーワードで定義され、不変(イミュータブル)である。変数への再代入はコンパイルエラーとなる。
可変変数を扱いたい場合、変数宣言時にmutキーワードを利用して可変であることを明示しなければならない。この機能は例えば巨大構造体のコピーを避けながら一部を変更するために有効活用できる。
またRustはシャドーイング(同名変数の複数回定義)に対応している。シャドーイングにより一時的な変数の変更や変数型の変更が可能になる。
変数とは別にconstキーワードで定義される定数を持つ。定数は常に等しい値を持つ(mutやシャドーイングに対応していない)。
Rustの開発ツールは独立したソフトウェアとして提供されているが、Rustの公式なインストール方法に従えば、以下のツール一式が手に入る。
Rustコンパイラは変数への代入時(variable = value)、変数の型を値の型に基づき型推論する。変数の宣言には必ずしも型を決定するための初期値を必要としない。変数の宣言時に初期値が与えられた場合は「変数の型」は「初期値の型」であると型推論がなされるが、初期値が与えられなかった場合は以降のブロックコード中のその変数へ値が初めて代入された時に「左辺の変数の型」は「右辺の代入する値の型」であると型推論がなされる。変数への代入が型不一致により失敗した場合にはコンパイル時にエラーを検出する。