Menu
CoddyTech

文字列から数値へのパース

CoddyのRustジャーニー「論理とフロー」セクションの一部。レッスン 47/66。

Resultの最も一般的な実用例の1つは、文字列を数値に変換することです。Rustでは、これは.parse()メソッドを使って行います。これは、なぜResultが存在するのかをよく示しています。解析は失敗することがあるからです。

.parse()メソッドは文字列を数値に変換しようとしますが、すべての文字列が有効な数値を表すわけではありません。たとえば、"42"は数値42に解析できますが、"hello"はいかなる数値にも変換できません。

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

解析に成功すると、.parse()は変換された値を含むOk(number)を返します。失敗すると、解析が失敗した理由に関する情報を含むErr(error)を返します。これにより、両方の可能性を明示的に処理する必要があり、無効な入力によってプログラムがクラッシュするのを防げます。

これまでに学んだResultの手法を使って、解析結果を処理できます。明示的に処理するにはmatchを使い、成功すると確信できる場合はunwrap()を使うか、エラーを伝播させるには?演算子を使います。

challenge icon

チャレンジ

簡単
文字列 input を受け取り、解析した整数値を返す関数 parse_to_integer を書きましょう。文字列を有効な整数に解析できない場合は、デフォルト値として 0 を返します。

.parse() メソッドを使って文字列を i32 に変換し、安全な戻り値を提供できるように Result を適切に処理します。

パラメーター:

  • input (String):整数に解析する文字列

戻り値:解析に成功した場合は解析された整数、失敗した場合は 0(i32)

自分で試してみよう

fn parse_to_integer(input: String) -> i32 {
    // ここにコードを書いてください
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ