0Pricing
Zig Academy · レッスン

複数の型のいずれかを保持するユニオン

異なる形の値を1つの領域に格納します。

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

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

One Slot, Many Shapes

Sometimes a value could be an integer or a float, but only one at a time. A union stores exactly one of several possible types in a single slot.

Declaring a Union

You write union and list named fields, each with its own type. The value holds just one of those fields at any moment.

const Number = union { int: i64, float: f64 };

It Holds One Field at a Time

Unlike a struct, a union does not keep every field at once. It stores a single active field, and the others are not present.

Setting the Active Field

You initialize a union by choosing one field with the dot syntax. That field becomes the active one for the value.

var n = Number{ .int = 42 };

Reading the Active Field

You read a union through the field you set. Access n.int and you get the integer you stored, just like reaching into a struct.

const x = n.int;

Memory Is Shared

A union reserves room for its largest field and reuses that space. This makes it a compact way to hold one of several variants.

Switching the Active Field

Assigning a new field makes that field the active one and the old value goes away. The union now represents a different shape.

n = Number{ .float = 3.14 };

Reading the Wrong Field

If you read a field that is not active, that is a bug. In safe builds Zig detects the wrong access and triggers a panic.

const f = n.int; // wrong field active

A Bare Union Has No Tag

A plain union does not remember which field is active. You must track that yourself, which is exactly the problem a tagged union solves.

Unions vs Structs

A struct is a logical AND of its fields, all present together. A union is a logical OR: just one field lives at a time.

When to Reach for a Union

Use a union when a value naturally takes one of a few forms, like a token that is a number or a symbol, never both at once.

Quick Check

How many of a union's fields hold a value at the same time?

Recap

You met unions: one slot that holds a single field from several typed options. They share memory, so set and read only the active field. 🔀

よくある質問

「複数の型のいずれかを保持するユニオン」レッスンは無料ですか?

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

「複数の型のいずれかを保持するユニオン」で何を学びますか?

異なる形の値を1つの領域に格納します。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「複数の型のいずれかを保持するユニオン」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 値の固定された集合にenumを使う
  2. 複数の型のいずれかを保持するユニオン
  3. タグ付きユニオンとswitch
  4. enumのメソッドと基底整数型
← Zig Academyに戻る