Groovy--使用模板引擎和GroovyShell执行插值字符串
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执行插值字符串的更多相关文章
- PHP模板引擎正则替换函数 preg_replace 与 preg_replace_callback 使用总结
在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:P ...
- 简易js模板引擎
前面 js 模板引擎有很多很多,我以前经常用 art-template ,有时候也会拿 vue 来当模板引擎用. 直到...... 年初的时候,我还在上个项目组,那时候代码规范是未经允许不能使用 [外 ...
- PHP的模板引擎smarty原理是什么(整理)
PHP的模板引擎smarty原理是什么(整理) 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个ph ...
- Ajax概述,封装以及联合模板引擎进行数据交互
欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 更多资料可参考Ajax 介绍 ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- php模板引擎
http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4 ...
- doT.js模板引擎及基础原理
时至今日,基于后端JavaScript(Node.js)和MVC思想也开始流行起来.模板引擎是数据和页面分离工作中最重要的一环,在各大门户网站均有利用到模板引擎. 模板引擎有很多种,但是原理了解也是非 ...
- java开源模板引擎
Velocity Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义 ...
- Spring Boot☞ 使用Thymeleaf模板引擎渲染web视图
静态资源访问 在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /s ...
随机推荐
- 前端三大框架(Angular Vue React)
前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增 ...
- smb服务问题解析,区别红帽6和CentOS7
最近在学习smb服务,哇!简直问题多的不要不要的.因为以前是学习的红帽6的系统,现在用的是CentOs7,所以还是改不了以前的一些配置方式,造成了很多问题.快成地中海了! 我们准备环境: 系统: 服务 ...
- LC 351. Android Unlock Patterns
Given an Android 3x3 key lock screen and two integers m and n, where 1 ≤ m ≤ n ≤ 9, count the total ...
- ValueAnimator
import android.animation.ValueAnimator; import android.os.Bundle; import android.support.v7.app.AppC ...
- C#.net winform skin 皮肤大全
C#.net winform skin 皮肤大全 1. 东日IrisSkin IrisSkin 共有两个版本,一个是IrisSkin.dll 用于.Net Framework1.0/1.1 和Iris ...
- Oracle CDC (Change Data Capture)更新数据捕获——概述
Change Data Capture能高效识别并捕获数据的插入.修改和删除,使更新数据供个人或应用使用. CDC从oracle 9i开始引入,//TODO 在11G R2之后的版本里将取消支持,被O ...
- Delphi编写的等长加密与解密
最近在看一本关于网络游戏服务端开发的书,虽然该书是个空架子,里面没有多少实际的内容(此书评价不好),但其中关于等长加密与解密的代码还是有一定的借鉴作用的.他山之石,可以攻玉.因为书中是C++的代码,所 ...
- spring-boot集成8:集成shiro,jwt
Shrio是一个轻量级的,基于AOP 和 Servlet 过滤器的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权. JWT(JSON Web Token)是 ...
- 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题
猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...
- 安装多个版本的TensorFlow
TensorFlow 2.0测试版在今年春季发布,新版本比1.x版本在易用性上有了很大的提升.但是由于2.0发布还没有多久,现在大部分论文的实现代码都是1.x版本的,所以在学习TensorFlow的过 ...