固定長配列
コンパイル時にサイズが決まる配列を宣言し、インデックスでアクセスします。
「固定長配列」はCoddyKit上の無料Zig Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはZig Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Zig Academyコースには全4レッスンが含まれています。
配列に格納されるもの
配列は、同じ型の値を固定個数格納し、メモリ上の1つのブロックに連続して配置します。📦
長さは固定
Zigでは長さが配列の型の一部であり、コンパイル時に決まります。宣言後に増やしたり減らしたりすることはできません。
配列を宣言する
角括弧内に個数を書き、その後に要素の型を記述します。この[3]i32は符号付き整数をちょうど3個格納します。
const nums = [3]i32{ 10, 20, 30 };Zigに個数を数えさせる
サイズにアンダースコアを使うと、Zigが列挙した値から個数を推論します。ここでの[_]i32は3要素の配列になります。
const nums = [_]i32{ 1, 2, 3 };インデックスは0から始まる
角括弧内のインデックスで要素にアクセスします。インデックスは0から始まるため、nums[0]が最初の値です。
const first = nums[0];長さを確認する
すべての配列はlenフィールドでサイズを公開しています。これはコンパイル時に決まり、変わることはありません。
const count = nums.len; // 3範囲がチェックされる
末尾を越えて読み取ると検出されます。安全なビルドでは、範囲外のインデックスによって、静かなデータ破壊ではなく実行時パニックが発生します。
1つの値で埋める
**演算子を使うと、配列全体に同じ要素を繰り返し配置できます。これにより、5個のゼロを1つずつ入力せずに作れます。
const zeros = [_]u8{0} ** 5;配列は値型
配列を別の配列に代入すると、すべての要素がコピーされます。2つの配列は独立しているため、一方を変更しても他方には影響しません。
要素を変更する
後から要素を変更するには、配列をvarで宣言します。その後、インデックスを通して代入すれば、1つの要素を更新できます。
var scores = [_]i32{ 0, 0, 0 };
scores[1] = 99;あらゆる型の配列
要素には、別の配列を含むあらゆる型を使えます。[2][3]i32は、3個の整数からなる行が2行ある小さなグリッドです。
const grid = [2][3]i32{ .{ 1, 2, 3 }, .{ 4, 5, 6 } };クイックチェック
const nums = [_]i32{ 1, 2, 3 }と宣言しました。nums.lenは何になりますか?
まとめ
固定サイズの配列は、同じ型の値をまとめて格納します。長さは型の一部で、インデックスは0から始まり、アクセス時には範囲がチェックされます。🎯
よくある質問
「固定長配列」レッスンは無料ですか?
はい。「固定長配列」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Zig Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Zig Academyコースには全4レッスンが含まれています。
「固定長配列」で何を学びますか?
コンパイル時にサイズが決まる配列を宣言し、インデックスでアクセスします。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Zig Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのZig Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「固定長配列」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このZig Academyレッスンでコードを書いて実行できますか?
はい。すべてのZig Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。