package curveJudge

import groovy.text.SimpleTemplateEngine

/**
* Created by Jxy on 2019/8/26 17:16
*
*/
class EngineTest {
static void main(String[] args) {
def shell = new GroovyShell()
def engine = new SimpleTemplateEngine()
def map = [
'eg1' : 1,
'eg2' : 1,
'eg3' : 1,
'eg5' : 1,
'eg6' : 1,
'eg7' : 1,
'eg8' : 1,
'eg9' : 1,
'eg10': 1,
'eg11': 1,
'eg12': 1,
'eg14': 1,
'eg13': 1,
'eg15': 1,
'eg16': 1,
'eg17': 1,
'eg18': 1,
'eg19': 1,
'eg20': 1,
'eg21': 1,
'eg22': 1,
'eg23': 1,
'eg24': 1,
'eg25': 1,
'eg26': 1,
'eg27': 1,
'eg28': 1,
'eg29': 1,
'eg30': 1,
'eg31': 1,
'eg32': 1,
'eg33': 1,
'eg34': 1,
'eg35': 1,
'eg36': 1,
'eg37': 1,
'eg38': 1,
'eg39': 1,
'eg40': 1,
'eg41': 1,
'eg42': 1,
'eg43': 1,
'eg44': 1,
'eg45': 1,
]
def a = System.currentTimeMillis()
String str = '($eg1+$eg10)*6'
def string1 = engine.createTemplate(str).make(map).toString()
println "执行结果:${-> shell.evaluate(string1)}"
def b = System.currentTimeMillis()
println "---->执行 1 次需要毫秒数: ${b - a}" def str1
for (int i in 1..10) {
str1 = '($eg44+$eg3)*2'
def string2 = engine.createTemplate(str1).make(map).toString()
println "${i}执行结果:${-> shell.evaluate(string2)}"
}
def c = System.currentTimeMillis()
println "执行 10 次需要毫秒数: ${c - b}" String str2 = '($eg1+$eg10)*6'
def string3 = engine.createTemplate(str2).make(map).toString()
println "执行结果:${-> shell.evaluate(string3)}"
def d = System.currentTimeMillis()
println "---->在执行 1 次需要毫秒数: ${d - c}" def str3
for (int i in 1..100) {
str3 = '($eg44+$eg3)*2'
def string4 = engine.createTemplate(str3).make(map).toString()
println "${i}执行结果:${-> shell.evaluate(string4)}"
}
def e = System.currentTimeMillis()
println "执行 100 次需要毫秒数: ${e - d}" }
}

Groovy--使用模板引擎和GroovyShell执行插值字符串的更多相关文章

  1. PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结

    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:P ...

  2. 简易js模板引擎

    前面 js 模板引擎有很多很多,我以前经常用 art-template ,有时候也会拿 vue 来当模板引擎用. 直到...... 年初的时候,我还在上个项目组,那时候代码规范是未经允许不能使用 [外 ...

  3. PHP的模板引擎smarty原理是什么(整理)

    PHP的模板引擎smarty原理是什么(整理) 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个ph ...

  4. Ajax概述,封装以及联合模板引擎进行数据交互

    欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 更多资料可参考Ajax 介绍 ...

  5. Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化

    模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...

  6. php模板引擎

    http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4 ...

  7. doT.js模板引擎及基础原理

    时至今日,基于后端JavaScript(Node.js)和MVC思想也开始流行起来.模板引擎是数据和页面分离工作中最重要的一环,在各大门户网站均有利用到模板引擎. 模板引擎有很多种,但是原理了解也是非 ...

  8. java开源模板引擎

      Velocity  Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义 ...

  9. Spring Boot☞ 使用Thymeleaf模板引擎渲染web视图

    静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...

随机推荐

  1. UDDI:百科

    ylbtech-UDDI:百科 UDDI是一种用于描述.发现.集成Web Service的技术,它是Web Service协议栈的一个重要部分.通过UDDI,企业可以根据自己的需要动态查找并使用Web ...

  2. js中bind解析

    一.arguments的含义 // arguments 是一个对应于传递给函数的参数的类数组对象 function a(){ console.log(arguments); } a(); // Arg ...

  3. 手把手教你如何玩转Solr(包含项目实战)

    一:Solr简介       Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引 ...

  4. 关键字 using语句 大神的神扯

    using 是非托管资源: 解析:在C#应用托管到.NET Framework.但是他可以释放非托管资源. using 关键字有两个作用: 1:作为关键字,using可以导入命名空间 2:座位C#语句 ...

  5. vue自定义过滤器的创建与使用

    原文地址 过滤器:生活中有很多例子,净水器 空气净化器 .过滤器的作用:实现数据的筛选.过滤.格式化. vue1.*版本是有内置的过滤器,但是在vue2.*所有的版本都已经没有自带的过滤器了. 1.过 ...

  6. C语言链表之两数相加

    题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  7. Angular5 自定义scrollbar样式之 ngx-perfect-scollbar

    版本 angular 5.0 ngx-perfect-scrollbar ^5.3.5 为什么不用 ngx-perfect-scrollbar 最新的版本 v7 呢? 因为它报错啊!!! 每次init ...

  8. 手写Indexof

    String.prototype.indexO = function(st){ // console.log(this.length); let str = this; var j = 0; let ...

  9. 常用小功能js函数-函数防抖

    函数防抖:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时.这个我经常用到/** * 函数防抖 * fun 需要延时执行的函数 * delayTime 延时时间 * **/export ...

  10. linux 静态库 ar命令用法

    当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量.这里介绍命令ar,用来对库操作. 1.ar基本用法 ar ...