`
ldb19890624
  • 浏览: 243433 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

用Groovy思考 第五章 Groovy特性深入(2)

 
阅读更多

用Groovy思考第五章 Groovy特性深入(2)

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

6. 斜线字符串

正如早先提到的,斜线可以用于定义字符串。用斜线定义字符串有一个优点:那就是,字符串本身的内容无需转义反斜线。

比如:
def winpathQuoted = 'C:\\windows\\system32'
def winpathSlashy = /C:\windows\system32/
println winpathSlashy // C:\windows\system32
assert winpathSlashy ==~ '\\w{1}:\\\\.+\\\\.+'
assert winpathSlashy ==~ /\w{1}:\\.+\\.+/

7. 多行斜线字符串

斜线字符串还能够跨越多行。这一点对于多行正则表达式非常有用。

比如:
def name = "vishal"
def path = "c:/groovy/"
def multilineslashy = /
Hello $name
path $path
dollar = $
path = c:\/groovy
/
println multilineslashy

输出为:
Hello vishal
path c:/groovy/
dollar = $
path = c:/groovy

8. 斜线字符串中的美元符号$

在多行斜线字符串中,如果字符串内出现斜线/,那么它需要被转义。另外,如果字符串内出现了$美元符号(没有用于表达式时),也需要转义,否则会报MissingPropertyException异常。

比如:
def name = "vishal"
def path = "c:/groovy"
def multilineSlashy = /
Hello $name
path = $path
dollar = $test
path = c:\/groovy
/
println multilineSlashy

输出:
Exception thrown
四月 17, 2013 9:11:24 下午 org.codehaus.groovy.runtime.StackTraceUtils sanitize
WARNING: Sanitizing stacktrace:
groovy.lang.MissingPropertyException: No such property: test for class: ConsoleScript3
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at ConsoleScript3.run(ConsoleScript3:3)
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)
at groovy.lang.GroovyShell.run(GroovyShell.java:481)
at groovy.lang.GroovyShell.run(GroovyShell.java:163)
at groovy.lang.GroovyShell$run.call(Unknown Source)
at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:951)
at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
at groovy.lang.Closure.call(Closure.java:411)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.run(Closure.java:492)
at java.lang.Thread.run(Thread.java:722)
groovy.lang.MissingPropertyException: No such property: test for class: ConsoleScript3
at ConsoleScript3.run(ConsoleScript3:3)
分享到:
评论

相关推荐

    Programming Groovy 2

    5. **高级主题**:涵盖Groovy 2中的新增特性,例如类型推断、静态类型检查等,以及如何使用Groovy构建领域特定语言(DSL)。 6. **案例研究**:通过实际案例展示如何将Groovy应用于构建脚本、测试框架等领域。 #### ...

    Java中使用Groovy的三种方式

    本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。 一、作为嵌入式脚本 Java 6引入了JSR 223(Scripting for the Java Platform),允许在Java程序中直接执行脚本语言。...

    Groovy 2 Cookbook (英文版)

    根据描述,这本书是Groovy开发者的必读书籍之一,提供了超过90个针对日常编程挑战的解决方案,利用Groovy 2的强大特性。 从给出的内容片段中,可以提炼出以下知识点: 1. Groovy 2 Cookbook是一本实用指南,它通过...

    groovy

    本篇文章将深入探讨Groovy语言的关键特性和应用场景。 一、Groovy简介 Groovy是2003年由James Strachan创建的一种开源语言,它是Java虚拟机(JVM)上的一个方言。Groovy代码可以直接与Java代码互操作,因为它们都被...

    Groovy Script 入门

    5. **简洁的语法**:Groovy具有简洁的语法,可以显著减少代码量。 6. **脚本能力**:Groovy支持命令行脚本执行,可以直接编写和执行简单的脚本文件。 #### 三、Groovy脚本的基本使用 ##### 3.1 安装与配置 1. **...

    groovy入门经典,groovyeclipse 插件

    Groovy的语法简洁,支持面向对象编程、函数式编程,并提供了许多现代语言特性,如闭包和动态类型。这使得Groovy成为快速开发、脚本编写以及构建自动化等任务的理想选择。 GroovyEclipse是一款强大的Eclipse插件,...

    Z2-Groovy in Action.pdf

    Groovy的代码风格倾向于简洁和表达式丰富,例如在Groovy中可以直接使用true或false作为条件表达式,这是Groovy的动态类型特性之一。Groovy代码中的类声明和方法定义相比Java也更为简便。 5. Groovy的数据类型 ...

    groovy-2.3.6-installer

    安装Groovy后,开发者可以使用Groovy Shell(groovysh)进行交互式编程,或者编写Groovy脚本执行任务。Groovy的语法简洁明了,支持闭包和动态类型,使得开发效率大大提高。此外,Groovy还可以用于构建脚本、Web开发...

    Groovy.in.Action.2nd.Edition.pdf

    本书适合想要深入学习Groovy语言的人,以及希望了解动态语言特性,并考虑使用Groovy进行实际项目开发的开发者。书中的示例代码清晰、完整,并且书中对Groovy的每个特性都做了详细解释,使读者能够快速掌握Groovy并...

    Groovy 2 Cookbook

    Groovy 2 作为 Groovy 的一个重要版本,引入了诸多改进和新特性,提高了性能并增强了语言本身的灵活性。 #### 二、Groovy 2 Cookbook 内容简介 《Groovy 2 Cookbook》是一本由 Andrey Adamovich 和 Luciano ...

    apache-groovy-sdk-4.0.1下载

    5. **src**目录:可能包含Groovy语言的源代码,对于想要深入理解Groovy工作原理或者想要参与贡献的开发者非常有用。 6. **bin目录下的脚本**:每个脚本都有相应的Windows批处理文件(.bat)和Unix/Linux shell脚本...

    Groovy学习资料(包括Groovy in action 的中英文以及API)

    在第二部分,Groovy in Action详细探讨了Groovy的高级特性,如元编程和领域特定语言(DSL)。元编程允许在运行时修改或扩展程序的行为,这在构建灵活的框架和工具时非常有用。DSL则允许开发者创建易于理解的、定制化...

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    Groovy安装以及简单使用

    通过查看这些示例,读者可以更直观地理解Groovy的语法和特性,并动手实践,从而更好地掌握Groovy的使用。 总的来说,Groovy的安装和使用并不复杂,它为Java开发者带来了新的可能性,提供了更简洁、动态的编程体验。...

    Groovy入门教程[参照].pdf

    2. 添加 Groovy 特性 3. 添加 Groovy 类 4. 编译运行 Groovy 类 Groovy 语法简介 1. 没有类型的变量声明:Groovy 中所有变量都是对象,不需要强制类型声明。 2. 不需要 public 修饰符:Groovy 中默认的修饰符就是 ...

    Java调用Groovy,实时动态加载数据库groovy脚本

    2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的ClassLoader,能解析Groovy源码并生成字节码。 3. 加载并执行Groovy脚本:通过GroovyClassLoader的`parseClass()`方法...

    Groovy学习资料

    最后,学习Groovy的最佳实践,如如何有效地利用元编程,何时使用静态类型以提高性能,以及如何编写易于理解和维护的代码,这些都是提升Groovy开发技能的重要部分。 通过深入学习和实践这份"Groovy学习资料"中的内容...

Global site tag (gtag.js) - Google Analytics