跳转至

一些进阶语法

list 的运用

##var id name childrens' name #
##type int string (list#sep=,),string balabala
1 Mike A,B,C
2 Any
## balabala
  • 同样是这份数据,可以发现主要的奥秘在##type一行当中。childrens' name的type由两部分组成: list,type;前者用于表明这是个列表,后者表明该列表的元素类型。type可以是int,string,也可以是后文将要讲到的自定义类型。
  • (list#sep=,),该修饰符sep= '@'中的@主要用于表明,每个元素之间用什么隔开。如上文示例,。当然,如果该类型是自定义类型,则最好使用|,后续也会提及。

使用自定义类型

  • 对于自定义的数据类型,难免变量也会是自定义的。这样只用int和string将会满足不了我们。所以我们需要到_beans_.xlsx文件夹下去自定义我们的类。我们先将MyData.xlsx稍作修改。
##var id name childrens' name #
##type int string (list#sep=|),children balabala
1 Mike A,11|B,10|C,20
2 Any
## balabala
  • 可以看到,我们将list的value类型改成了children自定义类型。为了让luban明白这个类型,我们需要打开_beans_.xlsx文件。
  • 对于children类,我们姑且作如下设计
1
2
3
4
    class children{
        string m_name;
        int age;
    }

创建自定义类型

  • 由于我们的类是一个独立的类,并不继承自任何类,所以我们只需要将full_name下添加数据children(我们刚在数据里使用的名字,千万别打错了)。
  • 在sep栏里,我们填入,。如(list#sep=,)一样,这里是选择该类的元素应该用什么隔开。
  • 最重要的是右边的*field栏。这里的nametype就类似我们在MyData.xlsx当中写的##var##type,只不过这里的数据应当竖着填写。
name type group comment tags
m_name string
age int

结果

最后这就是我们的结果啦。完结撒花。如果需要更深入的了解,还是得多看看官方文档。对于enum的文件我们还尚未使用。也许后面会更新该博客。

    [
    {
        "id": 1,
        "name": "Mike",
        "childrens'name": [
        {
            "m_name": "A",
            "age": 11
        },
        {
            "m_name": "B",
            "age": 10
        },
        {
            "m_name": "C",
            "age": 20
        }
        ]
    },
    {
        "id": 2,
        "name": "Any",
        "childrens'name": []
    }
    ]