Zig Academy · レッスン

コンパイル時と実行時

実行前にZigが評価できることを学びます。

レッスン 1/413 ステップ

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

1つのプログラムにある2つの時間

Zigのコードには2つの世界があります。コンパイル中に起きることと、プログラムの実行中に起きることです。この区別を学ぶことで、Zigの力を引き出せます。⏱️

ランタイムは身近なほう

ランタイムとは、ビルド済みのバイナリが実行されるときに起きるすべてのことです。ユーザー入力、ファイルの読み取り、事前には分からない値などが含まれます。

コンパイル時はそれより前に起きる

コンパイル時とは、バイナリが存在する前にZigコンパイラーが行う処理です。一部の式は、その時点で完全に評価されます。

定数はしばしば畳み込まれる

値が分かっている単純な式は、コンパイル中に計算できます。Zigはそれを最終バイナリ内の1つの定数に畳み込みます。

const minutes = 60 * 24;

comptime_intには固定幅がない

型指定のない整数リテラルは、まずcomptime_intとして扱われます。i32のようなサイズ指定型に固定するまで、任意精度を持ちます。

const big = 1_000_000_000_000;

comptimeキーワード

式の前にcomptimeを置くと、コンパイル中に評価するよう要求できます。それができない場合はエラーになります。

comptime {
    const x = 2 + 3;
}

ランタイム値はランタイムにとどまる

入力から読み取った値が分かるのは、プログラムの実行時だけです。コンパイラーにコンパイル時の評価を要求することはできません。

comptimeでは実際のロジックも実行できる

コンパイル時にできるのは計算だけではありません。その時点ですべての入力が分かっていれば、Zigはループを実行したり、コンパイル時に関数を呼び出したりできます。

const total = comptime sum(10);

処理をコンパイル時に移す理由

コンパイル中に計算すれば、ランタイムのコストはゼロになります。答えがバイナリに組み込まれるため、プログラムが再計算する必要はありません。

両方に同じ言語を使う

同じZig構文が両方のフェーズで使われます。別のマクロ言語はなく、コンパイル時のコードも早い段階で実行される通常のZigです。

ランタイム前にエラーを検出する

Zigは既知のコードを早い段階で評価するため、多くのミスがコンパイルエラーとして表面化します。プログラムを実行する前に修正できます。

確認問題

7に24を掛けた値を定数に設定します。この乗算はいつ実行されますか。

まとめ

Zigでは処理をコンパイル時とランタイムに分けます。既知の値は無料で早期に計算でき、未知の値は実行時まで待たされます。🎯

無料で開始

AI チューターと学ぶ Zig — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「コンパイル時と実行時」レッスンは無料ですか?

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

「コンパイル時と実行時」で何を学びますか?

実行前にZigが評価できることを学びます。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「コンパイル時と実行時」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. コンパイル時と実行時
  2. comptimeパラメーターと値
  3. 型はcomptime値である
  4. inline forとループ展開
← Zig Academyに戻る