• 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}"
    
         }
    }
  • 相关阅读:
    iOS 定位坐标不准确的相关整理及解决方案汇总
    ASIHTTPRequest 类库在iOS 7.0中,会有一些报错警告,需要稍作修改
    2013年9月29日 iOS 周报
    适配iOS7之—UITableView和UISearchBar
    IOS开发~开机启动&无限后台运行&监听进程
    IOS开发~灵活使用 dismissViewControllerAnimated / dismissModalViewControllerAnimated
    IOS7开发~API变化
    IOS7开发~NSAttributedString
    IOS7开发~新UI学起(三)
    关于14道魔鬼js考题的整理
  • 原文地址:https://www.cnblogs.com/jsersudo/p/11418078.html
Copyright © 2020-2023  润新知