主要观点:作者数月前对 C 感到厌烦,尝试 Odin 语言后很喜欢,将游戏从 C 迁移到 Odin,介绍了学习 Odin 的过程、与 C 的对比以及 Odin 的优点等。
关键信息:
- Odin 像“Better C”语言,语法有反向特点,如变量声明
variableName: int = 10
或variableName := 10
,函数叫“procs”。 - 指针在 Odin 中是
^pointer
,解引用是pointer^
,且无需头文件,代码都在一个文件中。 - Odin 构建简单,
odin build.
或odin run.
,组织代码可使用odin build./src -collection:src=src -debug -out:./build/binary
。 - Odin 无内置包管理器,包是文件文件夹,可使用
import rl "vendor:raylib"
,第三方包可用 git 子模块管理。 - 迁移游戏时,代码转换多为语法转换,Odin 不喜欢循环依赖,可通过调整包结构避免,如创建层次结构。
- Odin 的标记联合方便处理联合类型,如处理实体组件系统。
- Odin 的字符串处理更简单,如文件读取和配置文件处理。
- Odin 的
defer
很方便,C23 可能也有类似功能。 - Raylib 在 Odin 和 C 中矩阵存储方式不同,Odin 是行主序,C 是列主序。
重要细节: - 作者有 ADHD,记忆不好,C 的头文件管理让他烦恼,Odin 避免了这一问题。
- 在 C 中代码依赖复杂,容易出错,Odin 让问题更易预测。
- 作者在 Akademy 时睡眠不足仍能在 Odin 中进行游戏编程。
- 推荐尝试 Odin,尤其对厌倦 C 的人,使用语言服务器时可设置并使用 ols,调试可借助 LLDB 调试适配器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。