Rust

Rust インデックス付きで Vec, イテレータをループ, 走査する方法

Rust の Vec をインデックス付きでループする方法 Rust の Vec もしくは イテレーターの要素をループして走査する際、インデックスも一緒にほしい場合があります。その方法をまとめます。 単純に for i in 0..a.len() {} みたいにしてループするのではなく、インデックスと要素のペアセットでループするようにします。 enumerate() を使う std::iter::I […]

Rust Trait を使った継承のような実装方法まとめ

Rust で Trait を使った継承のような実装 Rust は、Trait を使って struct に関数の実装を強制することができます。Trait はオブジェクト指向のプログラミング言語でいうところの、インターフェースや抽象クラスのような役割を果たします。 Trait 含め、struct に関数を実装する方法を忘れないようにメモします。 struct は関数をメンバに持たない Rust の s […]

RustでBrainfuckのインタプリタを実装する

Rust で Brainfuck Brainfuck – Wikipedia Brainfuck は、インタプリタのサイズが小さくなるように設計されたプログラミング言語です。実装するのがとてもお手軽な一方、Brainfuckで書かれたコードは非常に読みにくくなります。 Rust で Brainfuck のインタプリタを実装してみます。以前、C# で実装してみたことがあるのでそれをRus […]

Rust ソートアルゴリズム実装(バブルソート、選択ソート、挿入ソート)

Rust を使ってソートアルゴリズムを実装してみる Rust を使ってソートアルゴリズムを実装してみます。バブルソート、洗濯ソート、挿入ソートをそれぞれ実装します。 Rust はクセが強いので、結構苦労しましたが以下を学びました。 配列要素の交換は swap() を使う Clone を実装する型は clone() を使える Copy を実装すると型は配列の要素をそのまま交換できる 10..1 みた […]

Rust Cargo でプロジェクト管理、リリースビルドの方法

Cargo とは Cargo はRustのビルドシステムおよびパッケージマネージャです。Cargoは、コードの構築、コードが依存するライブラリのダウンロード、それらのライブラリの構築など、多くのタスクをユーザーに代わって処理します。 .NET でいうところの nuget や Javascript でいうところの npm みたいなパッケージ管理機能 + ビルド時のもろもろの便利機能を提供してくれます […]

Rustインストールから入門する

Rust とは Rust とは、プログラミング言語の1種で、速度、並行性、安全性を言語仕様として保証することで、C(C++)に代わるシステムプログラミングに適した言語を目指しています。言語仕様、ソースコード、ドキュメントがオープンソースで公開されています。 2015年にversion1.0が公開されており、比較的新しい言語となります。 システムプログラミングに適した言語であるということからもわかる […]