Rust 速習チュートリアル

Rust のタプル

1. タプル (Tuples)

タプル(Tuple)は、異なるタイプの値のグループを一つのバリアブル(Variable)に格納したものです。 複数の値をまとめてリターンしたり、関連するデータをセットで扱いたい場合に非常に便利です。

2. タプルの作成

タプルは丸括弧 () を使用して記述し、各値をカンマで区切ります。

サンプルコード

let person = ("John", 30, true);

このタプルには、&str(文字列スライス)、i32(整数)、bool(ブーリアン)が含まれています。

3. タプルの値へのアクセス

タプルの値にアクセスするには、ドット . の後にインデックス番号を記述します。

サンプルコード

let person = ("John", 30, true);
println!("名前: {}", person.0);
println!("年齢: {}", person.1);
println!("アクティブ状態: {}", person.2);

4. タプルのアンパック

タプルを作成して値を割り当てることを、通常タプルの「パッキング(Packing)」と呼びます。

サンプルコード

let person = ("Jenny", 45, false);

しかし、Rustではこれらの値を個別のバリアブルに再度抽出することも可能です。これを「アンパック(Unpacking)」または分割代入と呼びます。

サンプルコード

let person = ("Jenny", 45, false);
// アンパックを実行
let (name, age, active) = person;

println!("名前: {}", name);
println!("年齢: {}", age);
println!("アクティブ状態: {}", active);

5. ファンクションからタプルを返す

タプルは、ファンクション(Function)から複数の値をリターンする際によく利用されます。Rustのファンクションは通常一つの値しか返せませんが、タプルを使えば実質的に複数のデータを一度に渡せるわけです。

サンプルコード

// 名前(String)と年齢(i32)をタプルでリターンするファンクション
fn get_user() -> (String, i32) {
  (String::from("Liam"), 25)
}

fn main() {
  let user = get_user();
  println!("ユーザー: {} ({} 歳)", user.0, user.1);
}