0Pricing
Zig Academy · レッスン

pub関数と可視性

ファイルをまたいで関数を公開します。

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

ファイルはモジュール

Zigでは、すべてのソースファイルが独自のモジュールになります。他のファイルと共有できる内容は、可視性ルールによって決まります。📦

デフォルトでは非公開

通常の関数は、そのファイル内でのみ非公開です。他のファイルから呼び出せないため、内部ヘルパーを安全に隠せます。

fn helper() void {
    // only this file can call me
}

pubで公開する

pubキーワードを付けると関数を公開でき、プロジェクト内の他のファイルからインポートして呼び出せるようになります。

pub fn greet() void {
    std.debug.print("Hi!\n", .{});
}

importで取り込む

別のファイルでは@importを使ってモジュールを読み込み、返された値を通して公開された名前にアクセスします。

const utils = @import("utils.zig");
utils.greet();

アクセスできるのはpubの名前だけ

インポートを通して呼び出せるのは公開された名前だけです。非公開の関数は見えないため、誤って使われることもありません。

mainにpubが必要な理由

このため、mainはpubとして記述します。ランタイムはファイルの外側にあり、エントリーポイントにアクセスできなければならないからです。

pubはfn以外にも使える

pubキーワードは定数、型、変数にも使えます。これにより、モジュールの公開インターフェースをすっきり設計できます。

pub const version = "1.0.0";

小さなAPIを設計する

呼び出し元が本当に必要とするものだけを公開してください。ヘルパーを非公開にすると、保守するインターフェースを小さく安定させられます。

カプセル化でバグを減らす

内部を隠すことをカプセル化といいます。公開する部分を減らせば、他のファイルを壊さずに実装の詳細を変更できます。

ヘッダーファイルは不要

Cとは異なり、Zigにヘッダーファイルは必要ありません。ファイルをインポートするだけで、その公開宣言を直接利用でき、重複も発生しません。

可視性はコンパイル時に決まる

Zigは可視性をコンパイル時に強制します。ファイルの外から非公開関数を呼び出すと、コンパイルに失敗します。

クイックチェック

math.zigに関数を書きましたが、別のファイルから呼び出せません。最も可能性が高い不足要素は何でしょうか?

まとめ

関数はpubを付けるまで、そのファイルに対して非公開です。呼び出し元に必要なものだけを公開し、@importでインポートすれば、ヘッダーは一切必要ありません。🎯

よくある質問

「pub関数と可視性」レッスンは無料ですか?

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

「pub関数と可視性」で何を学びますか?

ファイルをまたいで関数を公開します。 ブラウザで直接実行するハンズオンコードでZig Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「pub関数と可視性」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 関数の構文と戻り値の型
  2. 値渡しと参照渡し
  3. pub関数と可視性
  4. 再帰と複数の戻り値
← Zig Academyに戻る