0Pricing
Learn Rust Coding · レッスン

複合型

タプルと配列

「複合型」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全4レッスンが含まれています。

複合型とは

複合型は、複数の値を1つにまとめます。Rustには、プリミティブな複合型が2つあります。

  • タプル — 異なる型も含められる、サイズ固定のまとまりです。
  • 配列 — 同じ型の値からなる、サイズ固定のまとまりです。
fn main() {
    let tup = (1, 2.0, 'c');
    let arr = [10, 20, 30];
    println!("{} {}", tup.0, arr[0]);
}

タプルの作成

タプルは、値をかっこ内にまとめたものです。各要素は異なる型にできます。

タプルの型は、各要素の型を組み合わせたものになります。

fn main() {
    let person: (&str, u32, f64) = ("Alice", 30, 5.6);
    println!("{} is {} years old", person.0, person.1);
}

タプル要素へのアクセス

ドットとインデックスを使ってタプルの要素にアクセスします。インデックスは0から始まります。

  • tup.0は最初の要素です。
  • tup.1は2番目の要素です。
fn main() {
    let point = (3, 7);
    let x = point.0;
    let y = point.1;
    println!("x={} y={}", x, y);
}

タプルの分解

タプルを1つの手順で複数の変数に分けられます。これは分解と呼ばれます。

fn main() {
    let coords = (1.5, 2.5, 3.5);
    let (a, b, c) = coords;
    println!("{} {} {}", a, b, c);
}

ユニット型

空のタプル()はユニット型と呼ばれます。これは「意味のある値がない」ことを表します。

何も返さない関数は、実際には()を返します。

fn main() {
    let nothing = ();
    println!("unit value is {:?}", nothing);
}

配列の作成

配列は、同じ型の複数の値を固定長で保持し、角かっこで記述します。

その型は[type; length]です。

fn main() {
    let days: [&str; 3] = ["Mon", "Tue", "Wed"];
    let numbers = [1, 2, 3, 4, 5];
    println!("{} {}", days[1], numbers[4]);
}

配列のインデックス指定

角かっこと0から始まるインデックスを使って、配列の要素にアクセスします。

範囲外のインデックスにアクセスすると、実行時にパニックが発生します。Rustは安全性のために範囲をチェックします。

fn main() {
    let colors = ["red", "green", "blue"];
    println!("first {}", colors[0]);
    println!("last {}", colors[2]);
}

同じ初期値の繰り返し

配列を同じ値で埋めるには、[value; count]を使用します。

これにより、すべての要素がvalueと等しい、count個の要素を持つ配列が作成されます。

fn main() {
    let zeros = [0; 5];
    println!("{:?}", zeros);
    println!("length is {}", zeros.len());
}

配列の長さ

.len()メソッドは、配列の要素数を返します。長さはコンパイル時に固定されます。

伸長可能なリストが必要な場合は、代わりにVecを使用します。

fn main() {
    let scores = [88, 92, 75, 100];
    println!("there are {} scores", scores.len());
}

配列の反復処理

forループを使うと、配列の各要素を順番に処理できます。

fn main() {
    let nums = [2, 4, 6, 8];
    let mut sum = 0;
    for n in nums {
        sum += n;
    }
    println!("sum = {}", sum);
}

タプルと配列の違い

使い分けの目安:

  • タプルは、座標とラベルのように、異なる型からなる固定のまとまりに使用します。
  • 配列は、スコアのリストのように、同じ型からなる固定のまとまりに使用します。
fn main() {
    let record = ("Bob", [90, 85, 95]);
    println!("{} first score {}", record.0, (record.1)[0]);
}

理解度チェック

Rustの複合型について、正しい文を選びましょう。

まとめ

Rustの複合型:

  • タプル — (a, b, c)のように記述し、型を混在させられます。.0などでアクセスし、分解もできます。
  • 配列 — [a, b, c]のように記述し、同じ型で長さが固定されています。[index]でアクセスします。
  • ()はユニット型です。
fn main() {
    let (name, scores) = ("Cara", [70, 80, 90]);
    let mut total = 0;
    for s in scores {
        total += s;
    }
    println!("{} total {}", name, total);
}

よくある質問

「複合型」レッスンは無料ですか?

はい。「複合型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「複合型」で何を学びますか?

タプルと配列 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「複合型」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. letと可変性
  2. スカラー型
  3. 複合型
  4. シャドーイング
← Learn Rust Codingに戻る