0Pricing
Zig Academy · レッスン

匿名構造体とタプル

その場で値をグループ化します。

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

一度だけ必要な場合もある

すべてのグループに名前付きの型が必要なわけではありません。Zigでは、使用する場所に匿名structを直接記述できます。

名前を省略するだけ

匿名structリテラルは.{で始まり、型を前に書かず、フィールド名でフィールドを列挙します。

const p = .{ .x = 1, .y = 2 };

フィールドを通常どおり使う

名前付きstructと同じように、ドットでフィールドを読み取ります。ここではp.xが1、p.yが2です。

const sum = p.x + p.y;

名前付き型に変換する

匿名リテラルは、戻り値のように対象の型がわかっている場合、名前付きstructに型強制変換できます。

fn make() Point {
    return .{ .x = 0, .y = 0 };
}

タプルにはフィールド名がない

フィールド名を省略するとタプルになります。これは、フィールドに位置でアクセスする匿名structです。

const pair = .{ 1, 2 };

タプルをインデックスで参照する

タプルのフィールドには、フィールド名のように数値でアクセスします。そのため、pair[0]は1、pair[1]は2です。

const first = pair[0];

異なる型を混在させられる

タプルの各フィールドは異なる型にできます。1つのリテラルにint、bool、文字列を同時に格納できます。

const row = .{ 42, true, "hi" };

タプルには長さがある

タプルもstructなので、コンパイル時に決まるlenがあり、tuple.lenで読み取れます。

const n = row.len; // 3

printの引数に便利

std.debug.printは、フォーマットする値のタプルを受け取ります。渡している.{}は匿名タプルです。

std.debug.print("{} {}\n", .{ 1, 2 });

タプルをループする

長さはコンパイル時にわかっているため、inline forループでタプルのフィールドを順に処理できます。

inline for (row) |field| {
    _ = field;
}

名前付きか位置指定か

名前によってわかりやすくなる場合は匿名structを使い、短い順序付きのグループだけが必要な場合はタプルを使います。

確認問題

タプルと名前付き匿名structの違いは何ですか?

まとめ

匿名structとタプルについて学びました。.{ .x = 1 }はインラインの名前付きstructで、.{ 1, 2 }は位置指定のタプルです。📦

よくある質問

「匿名構造体とタプル」レッスンは無料ですか?

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

「匿名構造体とタプル」で何を学びますか?

その場で値をグループ化します。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Zig Academyを始めるのに経験は必要ですか?

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

「匿名構造体とタプル」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 構造体とフィールドを宣言する
  2. メソッドとselfパラメーター
  3. フィールドのデフォルト値
  4. 匿名構造体とタプル
← Zig Academyに戻る