桌游开放平台API语言参考

一、内定义型

1. @prop @value 和 @key

@prop 表示一个键值对 .value取值 .key取键
@value 和 @key 分别表示取值取键,没有定义,对应于实现语言的原生功能 例如javascript原生方法[].;对应于java Map类型push(key,value)get(key)

在Nojson中一个核心的概念就是通过模糊定义的型代替路由来进行查找,而非具体到某个语言的某个特性函数或操作,即便其具体实现很有可能就是一个底层函数,但是通过与特地语言解耦,使得Nojson更加关注业务,其script风格也更能够直接描述业务成为一份名副其实的业务说明文档,

2. @num @str @obj @bool

@num 值为number类型 原生语言的类型判断功能 例如javascript typeof str == ‘number’;java 的 obj instanceof Integer || instanceof Double || instanceof Float
@str 值为string类型 原生语言的类型判断功能 例如javascript typeof str == “string”;java 的 obj instanceof String
@obj 值为object类型 原生语言的类型判断功能 除了@num @str的非null和undefined值;java 中非null的 Map
@bool 值为boolean类型

3. @reg (known as @str)

@str型的值满足正则表达式,只用作定义其他型 例:?color = @reg = “^#[A-Z]{3}” 定义一种新的型color 其值形为#RED #BLA

4. @single (known as @obj)

表示只有一个键值对的对象类型
例:

{
    "number_test@wrong":123,                //不是single型 因为不是对象 是number
    "color_test@single":{
  "red":"#RED"}      //是single型 因为对象只有一个键值对
}

5. @pure (@single included)

@pure 表示所有值同属于一种类型
例:

{
    "_1":"#RED",
    "_2":"#BLA",
    "_3":"#DGR"
}

@single型值肯定为@pure型

6. @it

表示迭代。 @it(item@T,id@num|str),collection)

7. @list @set

?list=@obj@it(kv@prop[.key == @num])
它定义了如下一个类型检查器

javascript代码实现如下:

//检查是否是list型值
Nojson.testIsListType(test_data){
    //检查是否是object型值
    if(Nojson.testIsOjectType(test_data)){
        //每个key都是number类型的
        return Object.keys(test_data).every(key=>Nojson.testIsNumberType(key));
    }
    return false;
}

?set=@obj[!@list]
它定义了如下一个类型检查器

Nojson.testIsSetType(test_data){
    return !Nojson.testIsListType(test_data);
}

变量与id

除了由``@``开头和由``.``开头的以字母或下划线为首的单词为变量
定义一个变量用``var``关键字 这同其他语言相同
由纯数字开头的变量为id值,将代表唯一一个实例,主要参与游戏中的筛选,抽取,排序等等。

二、支持的运算符

  • = 赋值运算符
  • > >= == != <= <比较运算
  • & | !
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值