Rust

cargo run --bin の使い方:複数バイナリの実行と指定方法

cargo run --bin の使い方:複数バイナリの実行と指定方法 Rust プロジェクトに複数のバイナリがある場合、cargo run --bin で実行するバイナリを指定します。 基本的な使い方 # バイナリ名を指定して実行 cargo run --bin バイナリ名 # 引数を渡す場合は --…

cargo-watch:ファイル変更時に自動ビルド・テストを実行する方法

cargo-watch:ファイル変更時に自動ビルド・テストを実行する方法 cargo-watch はファイルの変更を検知して、cargo build や cargo test などのコマンドを自動で再実行するツールです。コードを書き直すたびに手動でコマンドを実行する手間がなくなります。 …

Rustのエラーハンドリング入門:Result・Option・?演算子の使い方

Rustのエラーハンドリング入門:Result・Option・?演算子の使い方 はじめに Rustには例外(Exception)がありません。代わりに Result<T, E> と Option<T> という型でエラーや値の有無を表現します。コンパイラがエラーの見落としを防いでくれるため、実行時の予期し</t></t,>…

Rustのファイル読み書き入門:fs・BufReader・BufWriterの使い方

Rustのファイル読み書き入門:fs・BufReader・BufWriterの使い方 はじめに Rustでファイルを読み書きするには std::fs モジュールを使います。シンプルな一括読み込みから、大きなファイルを効率的に処理するバッファリングまでまとめます。 ファイルを読む …

Rustのイテレータ入門:map・filter・collectの使い方

Rustのイテレータ入門:map・filter・collectの使い方 はじめに Rustのイテレータは Vec や配列などのコレクションを要素ごとに処理するための仕組みです。map・filter・collect を組み合わせることで、ループを使わず宣言的にデータ変換ができます。 イテレ…

RustのHashMap入門:基本操作から頻出パターンまとめ

RustのHashMap入門:基本操作から頻出パターンまとめ はじめに HashMap はキーと値のペアでデータを管理するコレクションです。キーで素早く値を検索・更新できます。Rustでは std::collections::HashMap として提供されています。 インポート use std::coll…

RustのStringと&strの違い:使い分けと変換方法まとめ

RustのStringと&strの違い:使い分けと変換方法まとめ はじめに Rustには文字列を扱う型が主に2つあります。String と &str です。どちらも文字列ですが、所有権とメモリの扱いが異なります。最初はどちらを使えばいいか迷いやすいポイントなので、違いと使…

Rustのバージョン管理:rustupの使い方

Rustのバージョン管理:rustupの使い方 はじめに Rustのバージョン管理は rustup 1つで完結します。他の言語のようにnvmやpyenvなど外部ツールを導入する必要はありません。 この記事ではrustupを使ったチャンネル管理・バージョン切り替え・プロジェクト別…

Rustのバージョン確認方法まとめ:rustc・cargo・rustup

Rustのバージョン確認方法まとめ:rustc・cargo・rustup はじめに Rustを使っていると、こんな場面でバージョンを確認したくなります。 インストールできているか確認したい stable・nightly どちらのツールチェーンが使われているか確認したい rust-toolcha…

Rust actix-web入門:Hello Worldからルーティングまで

Rust actix-web入門:Hello Worldからルーティングまで はじめに actix-webはRustで最もよく使われるWebフレームワークの1つです。高いパフォーマンスと豊富な機能を持ち、APIサーバーやWebアプリケーションの開発に使われています。 この記事では actix-web…

Rustでよく使う標準トレイト一覧:Display・Debug・Clone・Iteratorなど

Rustでよく使う標準トレイト一覧:Display・Debug・Clone・Iteratorなど はじめに Rustの標準ライブラリには多くのトレイトが用意されています。コードを書いていると #[derive(Debug)] や impl Display for といった記述を頻繁に見かけます。 この記事では…

Rustのトレイト入門:実装方法を基礎から解説

Rustのトレイト入門:実装方法を基礎から解説 はじめに Rustを学んでいると trait という言葉が頻繁に出てきます。トレイトはRustの型システムの中心的な概念で、「型がどんな操作をサポートするか」を定義する仕組みです。 この記事ではトレイトの基本的な…

Rustの配列(array)初期化まとめ:[T; N]の書き方

Rustの配列(array)初期化まとめ:[T; N]の書き方 はじめに Rustの配列([T; N])はサイズがコンパイル時に決まる固定長のデータ構造です。スタック上に確保されるためVecより軽量ですが、サイズの扱いにRust特有のルールがあります。 この記事では配列の初…

Rustの標準入力:stdin・read_line・flushの使い方まとめ

Rustの標準入力:stdin・read_line・flushの使い方まとめ use std::io; fn main() { let mut input = String::new(); io::stdin().read_line(&mut input).unwrap(); println!("入力値: {}", input.trim()); } やりたいこと 方法 標準入力を1行受け取る stdin…

「Rust」bin配下にアプリを配置しアプリ単体を実行する方法

今回はRustで開発する際にbin配下にアプリを配置しアプリ単体を実行する方法を紹介したいと思います。 結論 bin配下に作成したアプリをcargo run --bin アプリ名で対象のアプリ単体で実行できます。 例 アプリの作成 通常通りcargo new xxx(xxxは任意のアプ…

「Rust」cargo watchで変更を自動検知しホットリロード

今回はRustで開発する際に便利なツールcargo watchを紹介したいと思います。 cargo-watch GitHubリポジトリ インストール cargo install cargo-watch watch cargo watch -x run 実際に試す 簡単なWebアプリのサンプルコードで試してみました main.rs use act…

cargo addでfeaturesを指定する方法:cargo-editなしで使える

cargo addでfeaturesを指定する方法:cargo-editなしで使える cargo add serde # 最新版を追加 cargo add serde --features="derive" # features を指定 cargo add reqwest --features="blocking,json" # 複数 features cargo add tokio --dev --features="f…

RustのVec初期化まとめ:vec!マクロからVec::newまで

RustのVec初期化まとめ:vec!マクロからVec::newまで はじめに RustでVecを初期化する方法はいくつかあります。用途によって使い分けが必要で、初めて触ると迷うことが多いです。 この記事では Vec<T> のよく使う初期化パターンをまとめて解説します。サイズが</t>…