Rust

Rust入門:所有権システムと安全性を理解し環境構築から始める

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Rust入門ガイド:所有権システムと安全性の理解から始める

Rustを学ぶ上で最も重要な特徴は、所有権(Ownership)システムによるメモリ安全管理です。C言語やC++ではポインタ操作ミスが原因でクラッシュするケースが多くありますが、Rustはコンパイル時に自動でチェックし、null参照やデータ競合を防ぎます。プログラミング初心者でも理解できるよう、抽象的な概念を具体例で解説します。本記事では所有権システムの基本エラーハンドリングなど、Rustの特徴をわかりやすく紹介します。


環境構築:rustupで最新版Rustをインストール

Rustの学習にはまず環境構築が必要です。公式ツールrustupを使うことで、最新バージョンを簡単にインストールできます。ステップバイステップで手順を確認しましょう。

公式リポジトリからのインストール手順

Rustは最新版(例: 1.73.0)での学習が推奨されます。

  1. ターミナルを開き、以下のコマンドを実行
    bash
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

    このコマンドでrustupが自動ダウンロードされ、インストールが始まります。

  2. インストール完了後、環境変数を反映
    インストール後、以下を実行してRustのパスを通します:
    bash
    source $HOME/.cargo/env

  3. インストール確認コマンド
    以下のコマンドでバージョン確認を行います。正常にインストールされているとrustc 1.73.0(例)などのメッセージが出力されます:
    bash
    rustc --version

開発環境の確認方法

  • Rustのバージョン: rustc --versionで確認できます。
  • Cargoの確認: cargo --versionでパッケージ管理ツールが動作しているかをチェックします。

Rustの基本文法:変数・型・関数の使い方

Rustでは「immutable(不変)」と「mutable(可変)」という2つの変数宣言方法があります。また、型推論と明示的な型指定を組み合わせて使うことで、安全性が確保されます。

immutable/mutable変数の宣言

以下のように変数を宣言することで、不変性と可変性を切り替えられます:

項目 記法例 結果
immutable(不変) let x = 5; 変更不可。再代入はエラー
mutable(可変) let mut y = 10; 可変で再代入可能

注意: 不変性がデフォルトなので、初心者向けに可変性を明示的に設定する際にはmutを使う習慣をつけましょう。

型推論と明示的な型指定

Rustでは型が自動的に判定されますが、以下のように明示的に指定することもできます:

記法例 結果
let a = 5; 型はi32に推論される
let b: i64 = 100; 明示的にi64型を指定

関数定義とパラメータ

関数はfnキーワードで定義し、戻り値も指定できます:

このように、所有権システムと組み合わせて変数のライフタイムを管理することで、メモリリークが起こりません。


所有権・借用・ライフタイムの基礎概念

Rustの安全性は「所有権(Ownership)」「借用(Borrowing)」「ライフタイム(Lifetime)」という3つの仕組みで構成されています。これらを理解することで、メモリ管理の心配なくプログラミングできます。

所有権の基本原則

  • 1つの値は同時に1つの変数にしか所有されません。
  • 所有者がスコープ外に出ると自動で破棄されます(Drop)。

ポイント: Rustの「スマートポインタ」という概念に近い自動管理機能です。

参照による借用メカニズム

参照(Reference)を使うことで、他の変数に値を貸与できます。ただし、以下のルールがあります:

ルール 説明
1つの所有権を持つ変数は、他に1つだけ参照が可能 &sで借用する際には注意が必要です
参照のライフタイムは、所有者のライフタイムと一致する 異なるスコープではエラーになる場合があります

ライフタイムアノテーションの必要性

複雑なコードでは、コンパイラが自動でライフタイムを判定できない場合があります。その際は'aなどのライフタイムアノテーションを使って明示します:

実際のコードでは: ライフタイムアノテーションは「エラーを明示的に防ぐ」目的で使用します。初心者は'staticなどシンプルなケースから学習しましょう。


エラーハンドリング:Result型による安全な処理

Rustでは「エラーは明示的に処理しなければならない」という設計思想があります。Result<T, E>タイプを使って、失敗の可能性をコード内に明記できます。

Result型の基本構造

  • Ok(T): 成功時
  • Err(E): 失敗時(エラー情報が入る)

例として、ファイル読み込み時の処理を以下のように書けます:

match文での処理分岐

Result型の値はmatchを使って処理分岐できます:

?演算子の活用法

関数内で?を付けると、Errだった場合にすぐ外側の関数にエラーを返します。これにより、パンクが起きないコード構造を作れます:


あなたの第一歩:Hello Worldプログラムを作成

Rustの学習では、最初に「Hello, world!」と表示するプログラムを書くことで、環境構築が成功しているか確認します。

標準出力関数の使い方

以下のようにprintln!マクロを使います:

このコードは、Rust標準ライブラリに含まれるstd::io::Writeトレイトで実装されており、安全にコンソール出力が可能です。

コマンド実行時の確認手順

  1. cargo new hello_world でプロジェクトを作成
  2. src/main.rsを編集し、上記コードを書き込む
  3. cargo run を実行すると「Hello, Rust!」が出力される

プログラミング初心者向け: 実際の開発ではprintln!マクロだけでなく、write!writeln!など他の出力方法も使い分けましょう。


まとめ

  • 所有権システムはメモリ管理の自動化により安全性が高まります
  • rustupで環境構築し、cargoツールを使ってプロジェクトを管理
  • 変数宣言や関数定義などの基本文法を理解し、安全性を意識したコード作成に取り組みましょう
  • Result型やライフタイムアノテーションを使い、エラー処理とメモリ安全を確保

Rustの特徴を理解し、実際のコード作成に活かしてみましょう。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Rust