複数の戻り値
CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 52/75。
Rustでは、戻り値の型としてタプルを使用することで、関数から複数の値を返すことができます。タプルは、1つのユニットにまとめられた異なる値のグループです。
例えば:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // タプルを返す
}そして、関数の呼び出し方は次のようになります:
let (x, y) = get_coordinates();
// タプルを分解して
// 個別の変数に代入します
println!("{}, {}", x, y);タプルに要素を追加することで、必要な数だけ値を返すことができます。例えば:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
// 3つの値を持つタプルを返す
}関数の呼び出し方は以下のようになります:
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);チャレンジ
簡単ユーザーの名前、年齢、メールアドレスを含むタプルを返す、get_user_infoという名前の関数を作成してください。関数のシグネチャは以下の通りです。
fn get_user_info() -> (String, i32, String)関数内で、以下の変数を作成してください。
name: "Bob" で初期化されたStringage: 25 で初期化されたi32email: "bob@example.com" で初期化されたString
これら3つの値をタプルとして返します。
main 関数内で get_user_info を呼び出し、返されたタプルを name、age、email という名前の個別の変数に分割代入してください。その後、println! を使用して、以下の形式でこれらの値をコンソールに出力してください。
Name: [name], Age: [age], Email: [email]チートシート
関数は、戻り値の型としてタプルを使用することで、複数の値を返すことができます。
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // タプルを返す
}関数を呼び出し、タプルを個別の変数に構造分解します。
let (x, y) = get_coordinates();
println!("{}, {}", x, y);異なる型の複数の値を返すこともできます。
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
}let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);自分で試してみよう
fn get_user_info() -> (String, i32, String) {
// ここで名前、年齢、メールアドレスの変数を作成します
// タプルを返します
}
fn main() {
// get_user_infoを呼び出し、返されたタプルを構造分解します
// 値を出力します
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。