GML中的switch-case语句性能是否不如函数表?

GML中的switch-case语句性能是否不如函数表?

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

文章讨论了《Undertale》中选择对话集的代码,尽管程序员认为其效率不高,但在游戏中运行正常。文章解释了switch-case的实现及其与动态语言的关系,并质疑使用数组是否比switch-case更快。

🎯

关键要点

  • 文章讨论了《Undertale》中选择对话集的代码实现。
  • 代码使用了switch-case结构,尽管程序员认为其效率不高,但在游戏中运行正常。
  • 代码是用GameMaker Language (GML)编写的,这是一种动态语言,类似于JavaScript、Lua和Python。
  • switch-case的标准实现方式是使用'跳转表',每个case对应一个索引。
  • switch语句中的case不是布尔表达式,而是直接指向要执行的代码。
  • 在GML中,数组的功能类似于哈希映射,因此使用数组是否比switch-case更快值得质疑。
➡️

继续阅读