静态类型游戏脚本语言中的异构数据处理难题
作者在开发一款静态类型游戏脚本语言时,遇到了处理异构数据的难题。文章探讨了多种编程语言中解决此问题的方案,包括null、变体类型、未标记联合、和类型、子类型等。作者最终选择了一种类似Pascal变体记录的方案,在简洁的语法和运行时类型检查之间取得平衡,避免了复杂的流程类型系统,使得语言更易于理解和使用。这是一种在静态类型安全和易用性之间权衡的巧妙设计,为游戏开发提供了更便捷的脚本语言方案。
阅读更多
作者在开发一款静态类型游戏脚本语言时,遇到了处理异构数据的难题。文章探讨了多种编程语言中解决此问题的方案,包括null、变体类型、未标记联合、和类型、子类型等。作者最终选择了一种类似Pascal变体记录的方案,在简洁的语法和运行时类型检查之间取得平衡,避免了复杂的流程类型系统,使得语言更易于理解和使用。这是一种在静态类型安全和易用性之间权衡的巧妙设计,为游戏开发提供了更便捷的脚本语言方案。
阅读更多
一位程序员讲述了他如何从对屏幕的凝视转向针织的触觉体验。文章将针织比作开放世界游戏,拥有平缓的学习曲线和无限的可能性。作者分享了针织带来的身心愉悦,以及制作物品的成就感,并鼓励其他程序员尝试这项活动,平衡工作和生活,并为亲人创造有温度的礼物。
阅读更多
一位开发者在构建一个幻想主题的控制台项目时,苦思冥想如何为其脚本语言添加模块系统。他尝试了多种方法来区分公有和私有声明:修饰符关键字(如Java的public和private)、修饰符区块(如C++)、标识符中的特殊符号(如Python的下划线)、导出清单(如Scheme)以及在声明中使用特殊符号(如Oberon的*)。最终,他倾向于在声明关键字前添加下划线来区分公私成员,例如`rec_`表示私有记录,`def_`表示私有函数,虽然这种方式不常见,但也简洁易懂,避免了在每个使用点都添加符号的冗余。
阅读更多
这篇文章探讨了编程语言中同步和异步函数的设计问题,以“颜色”作比喻,将异步函数比作“红色函数”,同步函数比作“蓝色函数”。作者指出,很多语言,如JavaScript、Dart、C#和Python,由于异步函数的特性,开发者需要面对诸多挑战,例如回调地狱、Promise和Future的局限性等。作者认为,像Go、Lua和Ruby这类拥有线程或类似机制的语言,通过多线程或协程的方式,消除了同步和异步之间的区别,为开发者提供更优雅的并发处理方式。
阅读更多