構造体とフィールドを宣言する
関連するデータを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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 構造体とフィールドを宣言する
- メソッドとselfパラメーター
- フィールドのデフォルト値
- 匿名構造体とタプル