見出し画像

Rust let-elseとは 使い方と注意点について

let-else構文は、Rust 1.65で導入された新しい制御構造で、if letの代替として使われます。

パターンマッチングとエラーハンドリングを組み合わせたもので、条件が一致しなかった場合に、デフォルトの処理を行う際に便利です。


let-elseの使い方

let-elseは、letキーワードとelseブロックを組み合わせて、条件が満たされなかった場合の処理を指定します。これは、if letの代わりに使用することができます。

fn process(value: Option<i32>) {
    let Some(x) = value else {
        println!("No value found");
        return;
    };

    println!("Value is: {}", x);
}

fn main() {
    process(Some(42)); // "Value is: 42"
    process(None); // "No value found"
}

Option型に対してlet-elseを使用して、パターンが一致しない場合のデフォルト処理を行っています。
Some(x)に一致した場合は値を使用し、elseブロックでは一致しない場合の処理を指定しています。


注意点

elseブロックでの早期終了

条件が一致しなかった場合に適切に処理を終了するためにlet-elseのelseブロックでは、通常、関数やスコープの早期終了を行います。


所有権とライフタイム

let-elseでは、デストラクトによる所有権の移動に注意します。
特に、elseブロックでの早期終了が適切でない場合、所有権とライフタイムのルールに従う必要があります。


Rustの案件を探すならクラウドワークス テック

・97%がリモートのお仕事
・週4日、週3日OKのお仕事多数
・登録社数74万件業界トップクラス
・2〜4週間程度でお仕事決定
・案件提案から契約締結、勤怠管理もすべてオンライン完結
・継続率90%!一人ひとりをサポート
・参画後の評価で委託料が上がる認定パートナー制度
・簡単60秒で登録


Rustをもっと詳しくなりたい方に

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!

個人的には他の言語開発もそれなりにあったことからこの本を読むことでかなりRustへの理解が深まりました。
プログラムやシステム的な専門用語は当たり前に登場するものの、他の言語での開発経験がある方なら問題ないでしょう。むしろその経験があることで、多言語との比較をしながら読み進めることができます。
内容的には大容量かつ丁寧すぎるほど嚙み砕いて説明がされているため、情報量は十分といえます。Rust自体学習コストが高く、難易度の高い言語のためこのくらいが妥当といえます。
プログラミング初心者レベルの方には難しい内容となっていますが、Rustの概念を理解し、基礎を把握することができる本であること間違いなしです。

Rust学習のために筆者が実際に読んでおすすめしたい本をまとめています。


基礎から学ぶRustプログラミング入門

本コースではRustについて全く経験がない方でもスムーズに学習を進められるようにとなっています。
基本的にはコードベースで解説を行い、抽象度が高く難しい内容に関しては適宜スライドも使いながら丁寧に解説します。そしてただ文法を学ぶだけではなく、最終的には演習としてCLIアプリケーションを作成し学習内容の定着を図ります。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?