Odin プログラミング言語を理解する
Odin プログラミング言語を学び、低レベルのプログラミングを理解したいですか?
それならこの本はあなたのためです。
サンプルを読むか、今すぐ購入する
Odin プログラミング言語を理解する は、オーディンの基本概念と高度な概念の両方を教える本です。手続きに関するご案内をさせていただきますので、 手動メモリ管理パラメトリックポリモーフィズム、データ指向設計など。
対象読者はプログラミング経験のある人です。 Odin は、この本を 低レベルプログラミングへの優れた入門書あなたのバックグラウンドに関係なく。
プログラミング言語はツールです。 道具を理解することで、より良い職人になれる。つまり、この本は Odin のコードの書き方を説明するだけではありません。も説明してあります なぜ それが言語の仕組みです。
人々の意見:
私は Carl Zielinski による Odin に関する優れた本をお勧めします。Odin プログラミング言語を学び理解したい人には最適です。 –ビル「ジンジャービル」ホール、オーディンの作者。
カールはオーディンについて上手に説明しています。私は Golang のようなガベージ コレクション言語で良い経験を積んでおり、この本は Odin のようなガベージ コレクション言語に移行するのに非常に役立ちました。 –Kevin D による store.zylinski.se のレビュー。
私は本を読まないので、すぐに気が散ってしまいます。しかし、ここの文体は非常に優れているので、数日ですべてを読むのに問題はありませんでした。 –Shakaによるstore.zylinski.seのレビュー。
バージョン1.10がリリースされました! リリースノートを読んでください。
利用可能な形式:
HTML

美しくレイアウトされており、ナビゲートしやすい。すべてのフォントと画像が焼き付けられたポータブル HTML ファイル。PDF に似ていますが、より使いやすいです。
コンピューター上で最高の読書体験を。スマホやタブレットでも読めます。
以下で入手可能です:
ストア.zylinski.se HTML+電子ブック
かゆみ HTML+電子ブック
例を読む
どのバージョンを入手すればよいかわからない場合は、store.zylinski.se または Itch から購入することをお勧めします。 そこでは HTML バージョンと電子書籍バージョンの両方を入手できます。
ビデオレビュー
リリースノート
バージョン1.10
- それを教えるために第 8.3 章が変更されました
[dynamic; N]T代わりにタイプ (固定容量の動的配列)Small_Array。固定容量の動的配列をオーバーライドしますSmall_Array。 - 付録 B も更新され、固定容量ダイナミック アレイも使用されます。
- 付録 A には、現在含まれているチームベースのマップに関するコメントが追加されました。
core。 - 10.3 でのマイナーな変更により、不必要なカットが行われました。
購入した場所から最新バージョンの書籍を再ダウンロードします。
バージョン1.9
- 更新された使用法
core:os「os2」による変更と一致します。背景: すべてcore:osパッケージは 2026 年 2 月に置き換えられました。この変更後、コード例のいくつかの変更が必要になりました。多くのコードが使用されていますcore:osまだ動作しますが、使用してくださいos.read_entire_fileそしてos.write_entire_fileいくつかの変更が必要でした。 - HTML バージョンの外部リンクは新しいタブで開くようになりました。
- 境界チェックの無効化に関する 10.1.1 のバグを修正しました。
- 文法問題は30問ほど解けました。
- いくつかの小さな技術的なバグが修正されました。
バージョン1.8
弦の修理の章
このバージョンでは、文字列の章 (第 11 章) にいくつかの大きな変更が加えられています。大幅に改訂および拡張されました。変更点の一部は次のとおりです。
- UTF-8 がどのようにデコードされるかがより明確になります。
- UTF-8 を手動でデコードする方法に関するセクション。
- Null 終端に関する古い「バブル」は、適切なセクションに変換されました。
- 「文字列定数を含む混合文字列の割り当て」セクションは、配列の代わりにマップを考慮することにより、より明確になり、より便利になりました。
- 「永続文字列」というフレーズがあいまいになる可能性があるという部分。
- Windows セクションが大幅に書き直され、新しい UTF-16 が使用されるようになりました。
cstring16タイプ - 小さな変更や編集がたくさんあります。
他の章への変更
- 第 1.5 章: バグ修正。
- 第 2.4 章: に関する注意事項
odin run . -keep-executable(オーディンの新しい行動)。 - 第 3.2 章: 型推論エラーを修正。
- 5.3章: についての説明
.(Type)構文は、union オプションをチェックするために使用されます。 - セクション 7.4: 文が明確になりました。
- セクション 7.8: 「becontext」要件に関する情報を追加しました。
@initそして@fini。 - 章 10.1.5: コード エラーの修正。
- 章 10.3: 不必要なスライス操作を削除します。
- 11.6章: デバッグコード。
- 第15.2章: バブルを移動する
bit_setまずはより適切な場所へ。 - 第 15.2.2 章: バグ修正。
- 15.3章: バグ修正。
- …そしていくつかの小さな修正が追加されました。
バージョン1.7
- 第 1 章: 壊れた Discord を修正する
- 第5.1.3章: バグ修正
- 第9.7章:
rand.int_max範囲照明 - 第14.3章: 改良された「Special_Array」の例
- 第 23 章: 間違いを修正する
- 第26.6章: 壊れたWebGPUサンプルリンクの修正
- 付録 D: コンパイル エラーの修正
バージョン1.6
- 17.5 の新しいセクション「コールバックを使用した循環依存関係の解消」では、コールバックを使用して循環依存関係が必要な状況を回避する方法と、単純なインターフェイスの作成方法について説明します。
- セクション 13.1.2: トレース スプリッタ パターンは、不正なリリースの動作方法に対する最近の変更に基づいて更新されました。
- 18.6 の「詳細設定」というタイトルの新しいセクション。より大きなカスタム スクリプトの作成に関する短いセクション。
- 26.10 の「コード生成」と呼ばれる新しいセクション: コード生成とは何かを説明し、例へのリンクを示しています。
- 付録 D: Raylib + Box2D の例から不要なものをいくつか削除し、もう少しわかりやすくしました。
- HTML 版にアイコンが追加され、表が見つけやすくなりました。
- 第 23.3 章: 動的リテラルを避ける必要はないが、動的リテラルによってメモリが割り当てられることを理解する必要があると説明しました。
- 第6.3章: バグ修正
- 8.1.3章: 間違ったベクトル方向を修正
from_1_to_2 - セクション 8.1.4: プロシージャ名の一貫した使用
draw_image時々使う代わりにdraw_texture。 - 第12.1章: バグ修正
- 第 23.1 章: わかりやすくするために若干の変更を加えました
バージョン1.5
私は本をすべて読みましたが、基本的に追加の編集パスを行いました。テキストをより明確にするためにいくつかの変更を加えました。大きな変更点のいくつかを以下に示します。
- サイズの説明
My_Union5.3で - アカウントについて話すときは、「メンバーシップ」と「価値」という言葉を使用します。以前は「enum value」と「value」を使用していました。前の単語は混乱していて不明瞭でした。
- 第 26 章のタイトルを「A Few More Things…」に変更し、内容を若干編集しました。
- 言及された
#load26章で - 言及された
@rodata26章で - 第 26 章には、「クリーン ライブラリのセットアップ」に関するセクションがあります。
- 新しいセクション 7.8 (
@initそして@fini) - セクション 4.3 (サークル) が改善されました。
- セクション 6.3 (構造に関する言及) は、より教育的になりました。
- セクション 10.3 (カスタム反復子) が改善されました。
- 新しいセクション 11.5.1 (文字列定数と混合された文字列区切り文字について)
- セクション 12.6 (context.user_ptr および context.user_index) に新しい例が記載されています。
- 例 2.6 の軽微なバグを修正。
- 動的リテラルはデフォルトで無効になっているため、第 23 章 (Odin で避けるべきこと) に移動してください。
- 第 18 章: 「システムを構築する必要がない」ことの微妙な点 そして、私が「システムを構築する」と言うとき、私は本当にそう思っています。
- 6.5 ではいくつかの点が明確になりました
- 読者から報告された 5.1.3、5.2.1、6.5、10.2.1 のタイプミスを修正しました (感謝!)
- 先頭にバージョン番号が追加されています。
- HTML バージョンで誤った「外部リンク」表記を使用している YouTube リンクを修正しました。
- itch.io の CAT & ONION へのリンク (Odin コードが付属しているため)。
- 言及された
#reverse「第 4 章: 追加の基本事項」
バージョン1.4
- 不変リンクとしての自動転送について: 「十分な大きさ」を「16 バイトより大きい」に変更しました。最近、Odin はプラットフォームに関係なく最大値が常に 16 バイトになるように変更しました。
- 6.2 のサイドバーでは、一般的に使用されるポインターのビット数について説明しています。
- 8.1.2の「プロセススタックメモリ」の意味を説明します。
- 「スタック割り当て配列」の意味に関するコメントを 8.1.3 に追加しました。また、後の章で固定配列を動的に割り当てる方法を示すことに注意してください。
- 一部の添付ファイルが奇妙に見えるという EPUB の問題を修正しました。
- マイナーなバグ修正。
バージョン1.3
- 一部の添付ファイルが奇妙に見えるという EPUB の問題を修正しました。
- シャットダウン時のメモリ割り当てのクリアの詳細については、13.1.1 を参照してください。
- 非 gamemedev での Odin の使用については、5.3.5 で詳細を説明します。
- 私の「十進数」という言葉のずさんな使用については 3.2 で説明しました。
- 修理済み
levelは 13.2 ではポインタではなかったので、ポインタでなければならない理由についての情報を追加しました。 - インデックス 10 の代わりにインデックス 20 が使用される 8.1.1 のバグを修正しました。
- 追加のバグ修正。
バージョン1.2
- 第 13 章の新しいセクション。
- PythagoRascal が私に送ってくれたリストに基づいて、28 の異なるタイプミスと文法を修正しました。ありがとう!
- 内部のバグを修正しました
bit_set章 - 使い方の説明
bit_set単一セットのマップを使用する場合と比較して。 - に関するセクション
Small_Arrayわかりやすくするために改良されました。 - 切り捨てが発生しない場合、符号なし浮動小数点は暗黙的に整数に変換できることに注意してください。
- やり方の説明
delete作品 - それについて何かを説明するバブルを追加しました
@staticローカル変数について説明します。 - 追加のバグ修正。一部は Discord の人々から提供されました。みんなありがとう!
バージョン1.1
1.0の直後にリリースされました。いくつかのバグを修正します。
著者について

Carl Zilinski は、フリーランスのゲーム開発者であり、プログラミング講師です。彼は、Odin をわかりやすい方法で教える『Understanding the Odin Programming Language』の著者です。カールはビデオゲーム「CAT & ONION」の作者です。これは、Odin プログラミング言語を使用して作成された最初の商用ビデオ ゲームでした。彼は YouTube チャンネルも運営しており、オーディンとゲーム開発に関する教育資料を共有しています。
過去に、Carl は Our Machinery、Bitsquid、および Autodesk でゲーム エンジン プログラマーとして働いていました。彼はまた、Hazelight (A Way Out) と Friendly Foe (SOULBOUND) のゲーム プログラマーとしても働きました。
カールは天体物理学の学士号を取得しています。自由時間には、ビデオ ゲーム、ハイキング、ボルダリング、ピアノの演奏を楽しんでいます。
彼の Web サイトとブログ (zylinski.se) をご覧ください。
オーディンと Discord サーバーでのゲーム開発について話します。