13.MVEL脚本语法--函数
2015-06-15 21:20
2699 查看
函数定义
在MVEL中,定义函数用def或function关键字定义。
如:
def hello(){
System.out.println("hello world");
}
function hello(){
System.out.println("hello world");
}
参数与返回值
MVEL中的函数一样可以传参数,返回结果。如下面的函数:
def add(a,b){
a+b;
}
add函数需要传两个参数 a 和b
因为MVEL遵循last-value-out原则,即输出最后值的原则,所以a+b的结果会被返回。也可以使用return关键字强制返回。
函数调用
函数在MVEL脚本文件中定义之后,在JAVA中的调用方法可以看下面的例子:
首先新建一个.el文件写MVEL脚本,test.el:
Java代码如下
闭包
Lambda(匿名函数)
threshold = def (x)
{ x >= 10 ? x : 0 };
[align=left]result = threshold(13);[/align]
[align=left]System.out.println(result);[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]关于函数调用的其他内容[/align]
[align=left][/align]
[align=left] MVEL没有发现有自己的内置函数,比如其他的表达式语言如aviator中有获取日期的函数sysdate(),MVEL没有类似的东西。[/align]
[align=left] 但是发现MVEL可以调用JAVA中的一些类的方法,比如 Math的方法。[/align]
在MVEL中,定义函数用def或function关键字定义。
如:
def hello(){
System.out.println("hello world");
}
function hello(){
System.out.println("hello world");
}
参数与返回值
MVEL中的函数一样可以传参数,返回结果。如下面的函数:
def add(a,b){
a+b;
}
add函数需要传两个参数 a 和b
因为MVEL遵循last-value-out原则,即输出最后值的原则,所以a+b的结果会被返回。也可以使用return关键字强制返回。
函数调用
函数在MVEL脚本文件中定义之后,在JAVA中的调用方法可以看下面的例子:
首先新建一个.el文件写MVEL脚本,test.el:
[align=left]def add(a,b){[/align] [align=left] a+b;[/align] [align=left]} [/align] |
[align=left] //获取脚本文件[/align] [align=left] File scriptFile = new File("src/com/mvel/test.el" );[/align] [align=left] VariableResolverFactory resolverFactory = new MapVariableResolverFactory();[/align] [align=left] //参数[/align] [align=left] Map map = new HashMap();[/align] map.put("a", 11); map.put("b", 12); [align=left] [/align] [align=left] MVEL. evalFile(scriptFile, ParserContext.create(), map);[/align] [align=left] Object obj = MVEL. eval("add(a,b);", map);[/align] |
Lambda(匿名函数)
threshold = def (x)
{ x >= 10 ? x : 0 };
[align=left]result = threshold(13);[/align]
[align=left]System.out.println(result);[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]关于函数调用的其他内容[/align]
[align=left][/align]
[align=left] MVEL没有发现有自己的内置函数,比如其他的表达式语言如aviator中有获取日期的函数sysdate(),MVEL没有类似的东西。[/align]
[align=left] 但是发现MVEL可以调用JAVA中的一些类的方法,比如 Math的方法。[/align]
相关文章推荐
- 简单易懂云计算(转自天涯感谢原楼主iamsatisfied)
- 2011云计算知识库:盘点千奇百怪的云名称
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- Lua学习笔记之运算符和表达式
- Lua教程(三):表达式和语句
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- Ruby中case表达式详解
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 理解C#中的Lambda表达式
- javascript属性访问表达式用法分析
- JavaScript中:表达式和语句的区别[译]
- js 中的switch表达式使用示例
- js表达式计算器代码
- SQLite教程(六):表达式详解
- 用PHP实现的四则运算表达式计算实现代码
- Javascript表达式中连续的 && 和 || 之赋值区别
- javascript 用函数语句和表达式定义函数的区别详解
- JavaScript表达式:URL 协议介绍
- python 中的列表解析和生成表达式
- Lua中的操作符和表达式总结