言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Zig辞典

Zig辞典 一覧ページ

初心者向け: 概要と特徴、学習順ガイドCとのつながりとZigのコンパイル時計算・エラー処理の全体像。
【環境構築】Zigの開発環境Zigのインストールとzig buildコマンドの使い方。
alloc() / free()(スライスの確保と解放)Allocatorを通じたスライスの確保(alloc)と解放(free)。
Allocator インターフェースメモリ確保に明示的なAllocatorを渡すZigの設計思想。
配列([N]T)の基本コンパイル時にサイズ確定する[N]T形式の固定長配列。
ArrayList / HashMapアロケータを受け取るArrayListとHashMapの基本操作。
非同期処理(async / await の現状)Zig 0.11以降で一時無効化されているasync/await機能の現状。
build.zig(ビルドシステム)build.zigを使ったzig buildコマンドによるビルドシステムの設定。
組み込み関数(@ 記号)@記号で始まるコンパイラ直接処理の組み込み関数一覧。
extern fn(C関数の手動宣言)extern fnでCのシグネチャを手動宣言して直接呼び出す方法。
@cImport / @cInclude(Cヘッダーの取り込み)@cImport/@cIncludeでCヘッダーをZigから直接読み込む方法。
comptime(コンパイル時評価)の基本comptimeキーワードで計算をコンパイル時に評価させる仕組み。
comptime によるジェネリクスcomptime型引数で専用コードをコンパイル時生成するジェネリクス。
comptime によるインターフェースcomptimeとタグ付き共用体でvtableなしにポリモーフィズムを実現。
型を第一級の値として扱う(comptime)型を第一級の値として変数や引数に渡すcomptime型プログラミング。
deferスコープ終了時に確実に実行されるdeferとエラー時のerrdefer。
enum(列挙型)の基本整数定数に名前を付けるenum・メソッド定義とswitch網羅チェック。
エラー集合型(error set)error{Foo, Bar}形式でエラー値の集合を型として明示定義。
エラーユニオン型(!T)成功値TかエラーかをE!T型で表すエラーユニオン型。
float / boolf16〜f128の浮動小数点型とtrue/falseのbool型。
for_loop配列・スライス・rangeを|値, インデックス|キャプチャで反復処理。
function_basicfnキーワードで引数・戻り値の型を明示して定義するZigの関数。
エラーを返す関数(!T / try / catch)戻り値型に!Tを指定してtry/catchでエラーを伝播・捕捉する関数。
GeneralPurposeAllocator / FixedBufferAllocatorリーク検出のGeneralPurposeAllocatorと固定バッファの代替。
if / else式として値を返せるZigのif/else if/else条件分岐。
if + オプショナル型(if (opt) |val|)if (opt) |val|構文でオプショナル値をアンラップする安全な操作。
inline fn / 関数ポインタinline fnで関数をインライン展開し、関数ポインタで値として扱う方法。
整数型(i8 / u8 / i32 / usize ...)i8/u8〜i128/u128と暗黙変換なしの豊富な整数型。
多次元配列(配列の配列)[行数][列数]T形式で宣言するコンパイル時固定サイズの多次元配列。
オプショナル型(?T)nullの可能性を?T型で型レベルに明示するオプショナル型。
packed struct / extern structビット精度のレイアウトとC互換レイアウトの構造体定義。
ポインタ(*T / &変数)*T型のポインタと&で取得するアドレス・.*でのデリファレンス。
センチネルポインタ([*:0]u8)[*:0]u8形式のCヌル終端文字列互換センチネルポインタ。
std.debug.print()(標準エラー出力)デバッグ用途に特化した標準エラー出力へのstd.debug.print()。
スライス([]T)ポインタと長さのペアで元データをコピーせず参照する[]Tスライス。
std.fs(ファイルシステム操作)std.fs.cwd()を起点にファイルの読み書き・ディレクトリ操作を提供。
std.math(数学関数)std.mathが提供する三角関数・対数・pi/e定数の数学関数。
std.mem(メモリ操作ユーティリティ)std.memが提供するスライスのコピー・比較・検索などのメモリ操作。
std.testing(テストユーティリティ)testブロックとexpect/expectEqualによるユニットテスト。
std.io.getStdOut() / WritergetStdOut().writer()で取得したWriterへの書き込み方法。
string_formatallocPrint()/bufPrint()で書式付き文字列を動的に生成。
文字列リテラル([]const u8)null終端ではなく[]const u8バイトスライスとして扱う文字列リテラル。
struct(構造体)の基本複数フィールドをまとめた独自型を定義するstruct(構造体)の基本。
struct のメソッド・関連関数self引数でインスタンスメソッドを定義するstruct関連関数の書き方。
switch(パターンマッチ分岐)全パターン網羅が必須・式として値を返せるZigのswitch。
try / catch / errdefer(エラーの伝播・捕捉)tryで伝播・catchで捕捉・errderferでエラー時クリーンアップ。
タグ付き共用体(union(enum))バリアントごとに異なる型を安全に保持するunion(enum)タグ付き共用体。
unreachable / @panic()到達不能を宣言するunreachableとメッセージ付き終了の@panic()。
var / const再代入可能なvar・変更不可のconstと強力な型推論。
while ループ更新式付き・break値返却・ラベル付き多重ループ対応のwhileループ。
zig コマンド(build / test / fmt ...)zig build・test・fmt・runなど開発に必要なCLIコマンド。
Zigを C から呼び出す(export / zig build-lib)exportでC ABI公開しzig build-libでライブラリとして出力。
Zig vs C(相違点と改善点)Cと比較したZigのエラー処理・明示的アロケータ・安全性改善点。