曖昧さ回避
Rust(プログラミング言語)
概要
オブジェクト指向、関数型、命令形のパラダイムを持ち、高速なプログラムを安全に書くことができる言語。
他の言語にもある特徴
- チャンネル … goにもあるスレッド間でメッセージを受け渡すことができる機能
- クロージャ … 関数型言語によく見られる特徴で、環境をキャプチャできる匿名関数
- イテレータ … 繰り返しを抽象的に書くことができる
他の言語にはあまりない特徴
- Trait(トレイト) … 型にメソッドや関数を生やすための仕組み。これによってC++ のテンプレートに存在した問題が解消されている。例
- Enum … Cライクな言語と違いメンバーを持つことができる。例
- ライフタイム … 様々なリソースを明示することなく開放し不正な参照などを許さない仕組み。例
便利機能
Cargo パッケージマネージャ
Cargo は以下のことができる
- ビルド
- テスト
- クレートの公開
- Cargo.tomlに書かれた依存関係の解決
- 実行
- ドキュメントの生成
- サブコマンドによる拡張
- build.rsによるビルド