0Pricing
Zig Academy · レッスン

構造体とフィールドを宣言する

関連するデータを1つの型にまとめます。

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

関連するデータをまとめる

ばらばらの変数はすぐに扱いづらくなります。structを使うと、関連する値を1つの名前付き型にまとめ、ひとまとまりで受け渡せます。

structは式である

Zigでは、structキーワードと本体を使って構造体を作成します。通常はconstに束縛して、型に名前を付けます。

const Point = struct {};

フィールドを追加する

波かっこの中に、名前と型を持つフィールドを列挙します。これらが、structの各値が保持するデータを定義します。

const Point = struct {
    x: i32,
    y: i32,
};

フィールドはカンマで終える

最後のフィールドも含め、すべてのフィールド宣言はカンマで終えます。Zigではここが厳密であるため、フォーマッターも一貫した形を保ちます。

const Color = struct {
    r: u8,
    g: u8,
    b: u8,
};

インスタンスを作成する

値を作成するには、型名と.{}初期化子を書き、各フィールドを名前で設定します。

const origin = Point{ .x = 0, .y = 0 };

ドットでフィールドを読み取る

値の後ろにドットを付けると、フィールドにアクセスできます。たとえばorigin.xは、その点のxフィールドを読み取ります。

const px = origin.x;

変更にはvarが必要

フィールドを変更するには、インスタンスをvarにする必要があります。constのstructと、そのすべてのフィールドは不変です。

var p = Point{ .x = 1, .y = 2 };
p.x = 5;

フィールドには任意の型を使える

フィールドには、boolやスライス、さらには別のstructなど、あらゆるものを格納できます。structは自由に入れ子にして、より複雑な形を表現できます。

const Line = struct {
    start: Point,
    end: Point,
};

フィールドの順序

通常のstructでは、Zigがメモリ上のフィールドを効率よく詰めるために並べ替えることがあります。フィールドには名前でアクセスするため、レイアウトがコードに影響することはありません。

structは値型

structを代入または引数として渡すと、値としてコピーされます。意図的にポインターを使わない限り、元の値は変更されません。

var a = Point{ .x = 1, .y = 1 };
var b = a; // b is a copy

変数ではなく型

structの定義は、設計図のような型を表します。インスタンスは、その設計図から作成する実際の値です。

確認問題

struct型から値を作成するには、どうすればよいですか?

まとめ

structsについて学びました。structキーワードで名前付きフィールドを型にまとめ、Type{ .field = value }でインスタンスを作成します。🧱

よくある質問

「構造体とフィールドを宣言する」レッスンは無料ですか?

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

「構造体とフィールドを宣言する」で何を学びますか?

関連するデータを1つの型にまとめます。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「構造体とフィールドを宣言する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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