💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
文章讨论了《Undertale》中对话选择的代码,尽管被认为效率低下,但游戏运行正常。解释了switch-case的实现,指出跳转表可提升性能,并质疑在GML中使用数组是否真的比switch-case更快。
🎯
关键要点
- 文章讨论了《Undertale》中负责选择对话集的代码。
- 代码使用switch-case结构,但存在成千上万的案例。
- 许多程序员认为该代码效率低下,但游戏运行正常,没有导致错误。
- 代码是用GML编写的,这是一种动态语言,类似于JavaScript、Lua和Python。
- 标准的switch-case实现方式是使用跳转表,将每个案例放入子程序中。
- 跳转表的概念在汇编语言和虚拟机字节码编程中已被广泛使用。
- switch语句中的案例直接指向要执行的代码,而不是在运行时评估布尔表达式。
- GML中的数组类似于哈希映射,质疑使用数组是否真的比switch-case更快。
❓
延伸问答
《Undertale》中使用switch-case的代码有什么特点?
该代码使用了成千上万的案例来选择对话集,尽管被认为效率低下,但游戏运行正常。
为什么程序员认为switch-case代码效率低下?
许多程序员认为该代码效率低下,但实际上它并没有导致游戏错误。
GML语言与其他语言有什么相似之处?
GML是一种动态语言,设计和实现上类似于JavaScript、Lua和Python。
switch-case的标准实现方式是什么?
标准实现方式是使用跳转表,将每个案例放入子程序中,直接指向要执行的代码。
在GML中使用数组是否比switch-case更快?
文章质疑使用数组是否真的比switch-case更快,因为GML中的数组类似于哈希映射。
跳转表的概念在编程中有什么应用?
跳转表的概念在汇编语言和虚拟机字节码编程中被广泛使用,用于优化代码执行。
➡️