AviatorScript 函数扩展(自定义函数)

第一步 继承 并 实现 

AbstractFunction (固定参数) 或 AbstractVariadicFunction(可变参数)

第二步 添加 自定义函数

AviatorEvaluator.addFunction(new AviatorStringConcatFunction());
AviatorEvaluator.addFunction(new AviatorParseNumberFunction());

=========================================================================

固定参数 如:

转数值:parseNumber(str)
public class AviatorParseNumberFunction extends  AbstractFunction{

	@Override
    public AviatorObject call(Map<String, Object> env, AviatorObject arg1) {
	
        .......
        .......

		return new AviatorDouble(........);
	}
	
	@Override
	public String getName() {
		return "parseNumber";
	}
}

动态参数  如:

字符串拼接 :string.concat(str1, str12, str3,...)
public class AviatorStringConcatFunction extends AbstractVariadicFunction {

	@Override
    public AviatorObject variadicCall(Map<String, Object> env, AviatorObject... argArray) {

		StringBuilder sb = new StringBuilder();
		for (AviatorObject arg : argArray) {
			sb.append(arg.getValue(env));
		}

		return new AviatorString(sb.toString());
	}
	
	@Override
	public String getName() {
		return "string.concat";
	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值