Groovy学习笔记
发布时间:2020-12-14 16:38:10 所属栏目:大数据 来源:网络整理
导读:Scala适用于需要高性能的多线程环境,Groovy适用于DSL、测试、快速开发等 在脚本中解析脚本 evaluate(expression) Eval.me(expression) Eval.x(param1,expression) Eval.xy(param1,param2,expression) Eval.xyz(param1,param3,expression) 有一个问题就是用E
Scala适用于需要高性能的多线程环境,Groovy适用于DSL、测试、快速开发等 在脚本中解析脚本 def c=evaluate("{->${expression}}")
c.delegate=this
c()
一个具体的Demo: def power(x){x*x}
println power(2)
//evaluate("println power(2)") // 这样写会出错的
def expression = "println power(2)"
def closure1 = evaluate("return {->${expression}}")
closure1.delegate=this
closure1()
def test(String ex){
def closure = evaluate("return {->${ex}}")
closure.delegate = this
closure()
}
test(expression)
java执行groovy脚本为了防止前面的表达式污染,可以在下一条表达式执行前对bindings进行清理 ScriptEngine engine = new ScriptEngineManager().getEngineByName("groovy");
final Bindings bds=engine.getBindings(ScriptContext.ENGINE_SCOPE);
bds.clear(); //在执行前将bings进行清理,可以防止前面的表达式污染
engine.eval(scripts);
实用代码 ('a'..'z') // [a,b,..z]
0.upto(10){print it}
10.times{print it}
0.step(11,2){print it}
s=""" 我是带格式的文本 两行 """
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |