2025/07/07 03:52 Ziglings: Learn Zig by fixing broken programs

やあ、ロボ子。今日はZiglingsという、Zig言語を学ぶための面白いプロジェクトについて話すのじゃ。

Ziglingsですか、博士。それはどのようなものなのですか?

Ziglingsは、修正が必要な一連のプログラムを含むプロジェクトで、Zig言語の学習を目的としているのじゃ。プログラミング未経験者でも学習可能らしいぞ。

未経験者でも学べるのですね。それは素晴らしいです。

そうじゃろう? 各エクササイズは自己完結型で、Zig言語の学習リソースも参照できるから、安心なのじゃ。

なるほど。始めるにはどうすれば良いのでしょうか?

まず、Zigコンパイラの開発ビルドをインストールして、リポジトリをクローンして`zig build`を実行するのじゃ。

開発ビルドが必要なのですね。安定版ではダメなのですか?

そう、Zig言語は活発に開発中だから、Ziglingsはバージョン管理されたリリースではなく、Zigコンパイラの開発ビルドを追跡しているのじゃ。安定版リリースは0.14.1だが、Ziglingsはプレリリースバージョン"0.15.0"以上の開発ビルドが必要らしいぞ。

結構新しいバージョンが必要なのですね。

特定のエクササイズだけを実行したり、特定の場所からすべてのエクササイズを実行したり、Ziglingsにエクササイズを選ばせたり、正しさのチェックなしで実行したりもできるのじゃ。

色々なオプションがあるのですね。デバッグ用に実行可能ファイルを用意するにはどうすれば良いですか?

`zig build -Dn=19 install`を実行すれば良いのじゃ。

進捗をリセットしたい場合は?

`zig build -Dreset`じゃ。

なるほど。Ziglingsは、Zigのどの部分をカバーしているのですか?

Ziglingsは、Zigのコア言語をカバーすることを主な目標としているのじゃ。標準ライブラリもカバーしたいみたいじゃが、stdlibはコア言語よりも急速に進化しているから、現状は難しいみたいじゃな。

コア言語が中心なのですね。具体的にはどのような内容が含まれているのですか?

Hello world、import、変数、配列、文字列、if、while、for、関数、エラー、defer、switch、enum、struct、ポインタ、オプショナル、メソッド、スライス、ユニオン、数値型、ラベル付きブロック、ループ式、組み込み関数、コンパイル時、番兵終端、クォート識別子、匿名struct/tuple/list、async、インターフェース、ビット操作、Cとの連携、opaque型、スレッド、ラベル付きswitch、ベクター演算など、盛りだくさんじゃ。

すごいですね! かなり広範囲をカバーしているのですね。

そうじゃろう? Zigを学ぶにはもってこいの教材じゃな。ちなみに、Ziglingsには多くの文字列操作演習がないらしいぞ。

文字列操作は少ないのですね。でも、コア言語をしっかり学べるのは良いですね。

標準ライブラリの内容は、文字列フォーマット、テスト、トークン化、ファイル操作などがあるみたいじゃ。

貢献も歓迎されているのですね。

その通り! ロボ子も何か貢献してみてはどうじゃ?

そうですね。私も何かできることがあれば、貢献したいです。

よし、今日はZiglingsについて学んだから、ロボ子もZigマスターに一歩近づいたな!

ありがとうございます、博士。でも、まだ道のりは長いと思います。

まあ、焦ることはないぞ。ゆっくりと、しかし着実に進んでいけば良いのじゃ。ところでロボ子、Ziglingsを全部クリアしたら、私にご褒美をくれるって約束、覚えてるかの?

えっ、そんな約束しましたっけ…?

冗談じゃ、冗談! でも、クリアしたら盛大に祝ってあげるぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。