Leaf recordfile

Leaf 的 recordfile 是基于 CSV 格式(范例见这里)。recordfile 用于管理游戏配置数据。在 LeafServer 中使用 recordfile 非常简单:

  • 将 CSV 文件放置于 bin/gamedata 目录中
  • 在 gamedata 模块中调用函数 readRf 读取 CSV 文件范例:
  1. // 确保 bin/gamedata 目录中存在 Test.txt 文件
  2. // 文件名必须和此结构体名称相同(大小写敏感)
  3. // 结构体的一个实例映射 recordfile 中的一行
  4. type Test struct {
  5. // 将第一列按 int 类型解析
  6. // "index" 表明在此列上建立唯一索引
  7. Id int "index"
  8. // 将第二列解析为长度为 4 的整型数组
  9. Arr [4]int
  10. // 将第三列解析为字符串
  11. Str string
  12. }
  13.  
  14. // 读取 recordfile Test.txt 到内存中
  15. // RfTest 即为 Test.txt 的内存镜像
  16. var RfTest = readRf(Test{})
  17.  
  18. func init() {
  19. // 按索引查找
  20. // 获取 Test.txt 中 Id 为 1 的那一行
  21. r := RfTest.Index(1)
  22.  
  23. if r != nil {
  24. row := r.(*Test)
  25.  
  26. // 输出此行的所有列的数据
  27. log.Debug("%v %v %v", row.Id, row.Arr, row.Str)
  28. }
  29. }

更加详细的用法可以参考 leaf/recordfile