- Category
- 程序
在 .Net 中关于 Dictionary (哈希表) 的一些细节
- 2024-12-01
- 99
- 0
- 2
- 37.9℃
本文详细解析了C#中`Dictionary`类的内部设计与实现原理。其底层采用“数组+链表”结构存储键值对,通过哈希值与容量取余确定索引,桶数组处理哈希冲突,理想情况下操作时间复杂度为O(1)。若哈希函数不合理导致所有冲突集中于同一桶,则退化为链表(O(n)),部分语言使用红黑树优化至O(log n)。
此外,文章探讨了`Dictionary`的扩容机制,由于涉及重新哈希与桶重建,建议预设初始容量以减少扩容开销。对于遍历性能,通过源码分析与基准测试对比直接遍历键值对与遍历值集合两种方式,结果显示两者在时间和内存分配上无明显差异,均通过迭代器直接访问内部数组实现,避免了额外内存分配。
Yarn 脚本语法指南 (编写中)
- 2024-05-25
- 353
- 0
- 10
- 79.3℃
本文介绍Yarn脚本语言的基本语法和使用,聚焦于程序向视角。Yarn是专为Yarn Spinner设计的脚本语言,用于编写游戏对话,支持分支、函数和命令等功能。
Yarn脚本以`.yarn`为后缀,由节点(Node)组成。每个节点包括节点头(含标题等元数据)和节点体,两者用`---`分隔,节点间用`===`分隔。节点体中可包含文本行、选项和命令:文本行可直接书写对话,可用冒号指定角色;选项以`->`起始,允许玩家选择并定义后续内容;注释以`///`标记。建议使用Visual Studio Code配合Yarn Spinner插件进行编辑,以获得语法高亮和补全等支持。文章内容参考官方文档,并补充了测试结果。
在 Unity 中安装和使用 Yarn Spinner
本文介绍了Yarn Spinner在Unity中的安装与使用方法。插件支持付费(Itch.io或Unity Asset Store)与免费(GitHub或通过OpenUPM注册表安装)两种方式,后者更灵活但需注意版本兼容性。核心部分解释了Yarn脚本(.yarn文件)、Yarn工程(用于管理脚本与本地化)及关键组件:Dialogue Runner(对话运行器)、Variable Storage(变量存储)和Line Provider(本地化文本提供者)。文章通过快速入门演示了创建脚本与工程、配置Dialogue Runner并运行对话的基本流程,并详细指导了如何定制对话UI,包括创建自定义Line View实现文本输出、通过按键/鼠标/按钮控制对话前进,以及使用Option List View和Option View构建选项系统,最终实现一个可完全自定义的对话界面。
Lua 基础语法速记
- 2023-06-04
- 61
- 0
- 0
- 30.1℃
本文介绍了LuatOS中Lua脚本语言的基础语法。主要内容包括:一、在线虚拟机环境的使用;二、变量的声明(全局与局部)、数据类型(数字、字符串、布尔、表)及其操作,如字符串连接、类型转换和表的基本函数;三、运算符,如乘幂、左移右移;四、函数的定义、参数与返回值;五、分支判断语句(if-elseif-else);六、循环语句(for、while),包括循环控制和break使用。文章通过代码示例详细说明了各语法要点,适合初学者快速掌握Lua编程基础。