💡
原文英文,约400词,阅读约需2分钟。
📝
内容提要
文章讨论了《Undertale》中选择对话集的代码,尽管程序员认为其效率不高,但在游戏中运行正常。文章解释了switch-case的实现及其与动态语言的关系,并质疑使用数组是否比switch-case更快。
🎯
关键要点
- 文章讨论了《Undertale》中选择对话集的代码实现。
- 代码使用了switch-case结构,尽管程序员认为其效率不高,但在游戏中运行正常。
- 代码是用GameMaker Language (GML)编写的,这是一种动态语言,类似于JavaScript、Lua和Python。
- switch-case的标准实现方式是使用'跳转表',每个case对应一个索引。
- switch语句中的case不是布尔表达式,而是直接指向要执行的代码。
- 在GML中,数组的功能类似于哈希映射,因此使用数组是否比switch-case更快值得质疑。
❓
延伸问答
《Undertale》中使用switch-case的代码有什么特点?
代码使用switch-case结构来选择对话集,尽管有成千上万的case,但在游戏中运行正常。
为什么程序员认为switch-case的效率不高?
程序员认为switch-case的实现可能不够优化,尽管它在游戏中没有导致错误。
GML中的switch-case是如何实现的?
GML中的switch-case通过'跳转表'实现,每个case对应一个索引,直接指向要执行的代码。
GML的数组与switch-case有什么关系?
GML中的数组功能类似于哈希映射,因此使用数组是否比switch-case更快值得质疑。
GML是什么语言,它与哪些语言相似?
GML是动态语言,类似于JavaScript、Lua和Python,运行在虚拟机的字节码上。
switch-case中的case是如何工作的?
switch-case中的case不是布尔表达式,而是直接指向要执行的代码,避免了运行时的评估。
➡️