複合型
タプルと配列
「複合型」は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フィードバックを取得できます。ローカル設定は不要です。