0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rustの基礎(3) タプル型と配列を理解しよう

Posted at

前回はRustの数値型や論理型について学びました。今回は、Rustの基本データ構造のひとつである タプル型配列 について学んでいきましょう。


🧺 タプル型とは?

タプル型とは、異なる型の値をひとまとめにできるデータ構造のことです。
複数の型を混ぜて使用したいときにとても便利です。

let tuple: (i32, f64, &str) = (42, 3.14, "Hello");
println!("整数 {}, 小数 {}, 文字列 {}", tuple.0, tuple.1, tuple.2);

✅ タプルのポイント

  • 型がバラバラでもOK
  • 順番も含めて型が決まる(順番が違うと別ものとみなされる)
  • 分解して変数へ代入可能
let tuple = (100, 6.28, "Rust");
let (x, y, z) = tuple;
  • 無視したい値は_でスキップ
let (x, _, z) = tuple;
  • ネスト(入れ子)も可能
let nested = ((1, 2), (3, 4), 5);
println!("{:?}", nested);
  • 空のタプル(ユニット型)も存在する
let unit: () = ();

これは主に「値を返さない関数」の戻り値などに利用されます。


🧮配列とは?

配列は、同じ型の値を並べて格納するデータ構造です。
Pythonなどで言うリストに近いですが、Rustの配列は サイズ固定 です。

let a: [i32; 3] = [1, 2, 3];

✅ 配列のポイント

  • すべて同じ型で統一
  • 要素数は固定(増減不可)
  • 初期化に同じ値を使用可能
let zeros: [i32; 1000] = [0; 1000];
  • デバック表示もOK
println!("{:?}", a);
  • 要素のアクセスはインデックス番号で。
let first = a[0];
  • 分解代入も可能
let [x, y, z] = a;

✂️ スライスとは?

スライス は配列の一部を切り出して参照するための仕組みです。
配列そのものをコピーせず、部分的に借用できます。

let a = [1, 2, 3, 4, 5];
let slice = &a[0..3]; // → [1, 2, 3]

✅ よく使うスライスの書き方

  • &a[1..] → 1番目から最後まで
  • &a[..3] → 最初から2番目まで(3は含まれない)
  • &a[..] → 全要素
    スライスを使用するとメモリ効率も良くなるため、積極的に使っていきたいですね。

📝 まとめ

  • タプル型 は異なる型をひとまとめにできる柔軟なデータ構造
  • 配列 は同じ型の値を固定数だけ格納できる構造
  • スライス を使用すれば、配列の一部を効率よく参照可能
    Rustは少し独特な構文や制約もありますが、慣れてくるととても便利です。
    ぜひ私と一緒に、Rustの知識を少しずつ深めていきましょう!

〼次回予告

次回は、ベクタ型文字列 について取り上げていきます。
どうぞお楽しみに!

本シリーズはNotionでもまとめています。
こちらは私なりにまとめているものになり、考えていることとかも記載しているので、興味のある方は見ていってください。

🔗 Notionで冗長なページはこちら:
https://probable-entrance-3f3.notion.site/Rust-3-20ccd005f1708099b939c2d1a9902dfc?source=copy_link

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?