Aviator自定义函数
在大多数系统中,都是通过Aviator自定义函数来实现关系表达式运算的。
Aviator有两种自定义函数。
AbstractFunction
:它实现的自定义函数,其call()
方法接受1 ~ 20
个参数。
原创大约 4 分钟
在大多数系统中,都是通过Aviator自定义函数来实现关系表达式运算的。
Aviator有两种自定义函数。
AbstractFunction
:它实现的自定义函数,其call()
方法接受1 ~ 20
个参数。Java:由于出道早、跨平台、纯面向对象、具有JVM、生态成熟等特性,已成为编程语言领域的标杆之一,主要用于三高(高并发、高可用和高性能)
企业级应用的开发。
Python:由于简单、灵活,且第三方算法库众多,已成为网络爬虫、数据科学、人工智能领域的主要编程语言(没有之一
)。
Go:天生就没有所谓线程
,而只有协程
的概念,它主要用来解决网络服务和云计算环境下复杂的系统通讯问题,非常适合于开发云计算、区块链等应用中的原生网络组件。
Scala:运行于JVM之上,在大数据应用领域中处于顶流的Spark(全部源码)和Flink(部分源码)就是用它开发的,所以用它来进行大数据统计分析是再合适不过的。
ArkTS:它是HarmonyOS首推的应用开发语言,是Ark(华为方舟编译器)和TypeScript的结合体。
Drools、Groovy和Aviator:作为规则引擎,其量级从重
到轻
。Drools是用Java开发出来的规则系统,而后两者则是基于JVM的脚本语言。
函数是Aviator中的一等公民,可以通过fn
来定义函数。
fn add(x, y) {
## 这里也可以写成x + y,不加分号;,这种方式也可以返回值
return x + y;
}
res = add(1, 2);
println(res);
res = add("hello", " aviator");
println(res);
## 函数也可以通过参数个数进行重写
fn add(x, y, z) {
x + y + z
}
println(add(1, 2, 3));
Aviator中每条语句都有值。
let a = if (true) {
## 这里如果加上分号,结果会变成nil = null
1;
};
println("a is : " + type(a) + " = " + a);
let b = if (false) {
## 这里加不加分号都是nil = null
2;
};
println("b is : " + type(b) + " = " + b);
let c = if (false) {
## 这里加不加分号都是nil = null
2;
} else {
## 这里如果加上分号,结果会变成nil = null,就和a一样了
3
};
println("c is : " + type(c) + " = " + c);