首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在groovy脚本中使用单引号和双三引号

在Groovy脚本中,可以使用单引号和双引号来表示字符串。单引号用于表示普通字符串,而双引号可以用于表示带有变量引用和转义字符的字符串。此外,Groovy还引入了三引号字符串,即使用三个连续的双引号来表示字符串。

使用单引号表示的字符串是不可变的,其中的特殊字符(如转义字符)会被直接输出,不会被解析为其特殊含义。例如:

代码语言:txt
复制
def str = 'Hello, World!'
println str

输出结果为:

代码语言:txt
复制
Hello, World!

使用双引号表示的字符串可以包含变量引用和转义字符。变量引用可以通过${}语法嵌入到字符串中,变量的值会被替换到字符串中。转义字符可以用来表示特殊字符,如换行符\n、制表符\t等。例如:

代码语言:txt
复制
def name = 'Alice'
def greeting = "Hello, ${name}!"
println greeting

输出结果为:

代码语言:txt
复制
Hello, Alice!

使用三引号字符串可以跨越多行,并且保留字符串中的换行符和缩进。三引号字符串通常用于表示多行文本、正则表达式或包含大量换行和缩进的字符串。例如:

代码语言:txt
复制
def multiline = """
This is a
multiline
string.
"""
println multiline

输出结果为:

代码语言:txt
复制
This is a
multiline
string.

在Groovy中,还可以在三引号字符串前加上r前缀来创建原始字符串,其中的转义字符会被直接输出而不会被解析。例如:

代码语言:txt
复制
def rawString = r"""
This is a raw string.\n
"""
println rawString

输出结果为:

代码语言:txt
复制
This is a raw string.\n

总结:

  • 单引号字符串是不可变的,不会解析特殊字符。
  • 双引号字符串可以包含变量引用和转义字符。
  • 三引号字符串可以跨越多行,并保留换行和缩进。
  • 原始字符串可以通过在三引号字符串前加上r前缀来创建,其中的转义字符会被直接输出。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai_services
  • 物联网(IoT):https://cloud.tencent.com/product/iot_explorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mpns
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Real-Time Rendering Engine):https://cloud.tencent.com/product/tencent_rtre
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Jenkins扩展共享库进行钉钉消息推送

id,不要自动生成,否则重启后,robot的id将发生变化 安装build user vars plugin插件,插件可能有相关版本依赖,需要重启一下 Jenkins 才能继续安装 流水线使用wrap...,获取BUILD_USER变量 wrap([$class: 'BuildUser']) { } Groovy Copy 创建配置共享库 编写Groovy脚本 项目目录结构如下: $ tree jenkinslibrary...Pipeline Libraries,我的配置如下图 流水线中导入共享库 导入方法@Library('pipeline-library-demo')_,这样就可以使用共享库的代码了 具体的 pipeline...Copy 至此完成,构建效果如下图: 遇到的问题 currentBuild.durationString的值传递不进去,一开始先用withEnv包裹一下 后来找到原因 Groovy 单引号的字符串里面是不支持插值的...,所以要用双引号 单引号的env.JOB_NAME会引用失败,双引号则引用成功 单、双引号引用JOB_NAME都引用成功 推荐所有变量都用””双引号 引号也是一样,”’ 单引号不支持插值,”””引号支持插值

1K20

Jenkins()

pipeline语法 pipeline语法可以分为 「声明式流水线」 「脚本化流水线」 但是由于脚本化流水线需要学习Groovy,所以我放弃了。...虽然放弃了通篇学习一整门语言,但是为了声明式流水线中使用简单的逻辑操作还是需要学习一点Groovy的基础内容。...//输出:hello ${name} 支持引号 引号支持插值 单引号不支持插值 支持闭包 def func = {print "hello world"} //定义闭包 func() //调用闭包...一个stage中有且只有一个steps agent:执行位置,某个(物理机,虚拟机,Docker)环境执行 步骤 类似于echo,sh等步骤,Jenkins有很多插件可以通过一定的修改来当作步骤使用...声明式流水线中使用脚本 一些不得不用代码的地方使用script就可以写Groovy代码了 pipeline{ agent any stages{ stage('Example

1.7K40

Groovy 语法-字符串学习

有很多脚本开发工具的插件是使用Groovy进行开发的,了解Groovy可以扩展我们的知识面。 2....可以通过使用反斜杠转义换行符来删除该字符。 所以开头的单引号后面我添加了一个\否则的话,会多一个换行 2.3 转义字符 java的转义字符是一样的。...(因为Groovy可以动态确定数据类型。) 任何Groovy表达式都可以插入到所有字符串单引号单引号字符串除外。插补是计算字符串时用它的值替换字符串的占位符的行为。...2.5 重双引号标注 单引号重一样。双引号也有重样式。同时,也是定义多行字符串使用的。...""" println(template) } 在引号的字符串,双引号单引号都不需要转义。我们可以直接使用。 其他的特性就和单引号是一样的。只是双引号可以插值而已。

6.9K20

Groovy语法系列教程之字符串(

4.2 字符串连接 所有的Groovy字符串都可以用+运算符连接: assert 'ab' == 'a' + 'b' 4.3 单引号字符串 单引号字符串是一系列字符,由3个单引号包围: '''...反斜杠 ' 单引号字符串单引号(对于单引号引号字符串是可选的) " 双引号字符串的双引号(对于重双引号单引号字符串是可选的) \t 制表符 \b 退格键 稍后介绍的其他类型的字符串...要转义双引号,可以使用反斜杠字符:双引号:\""。 4.4.1 字符串插值 Groovy表达式可以插入所有类型字符串,除了单引号单引号字符串。...第行代码的闭包使用单个java.io.StringWriter参数,您可以该参数后附加<< 左移操作符。 无论哪种情况,两个占位符都是嵌入式闭包。...我们定义一个等于1的number变量,然后两个GString插值,作为eagerGString的一个表达式lazyGString的一个闭包 第4行。

7.4K51

Groovy基础

Groovy单引号引号都可以定义一个字符串常量(Java里单引号定义一个字符),不同的是单引号标记的是纯粹的字符串常量,而不是对字符串里的表达式做运算,但是双引号可以。.../gradlew printStringVar运行后输出: 单引号的变量计算:${name} 单引号的变量计算:张 可以看到,双引号标记的输出了我们想要的结果,但是单引号没有,所以大家可以记住了,单引号没有运算的能力...Java为了访问修改JavaBean的属性,我们不得不重复的生成getter/setter方法,并且使用他们,太麻烦,太繁琐,这在Groovy得到很大的改善。...Groovy的闭包有thisObject、owner、delegate个属性,当你闭包内调用方法时,由他们来确定使用哪个对象来处理。...从输出我们也可以看到这个thisObject其实就是这个构建脚本的上下文,他脚本的this对象是相等的。

1.5K20

第二章 Groovy 基础

Groovy 的特性虽然不多,但也有一些,我们不可能在这里都讲完,这也不是这本书的初衷,在这里我挑一些Gradle有关的知识讲,让大家很快的入门 Groovy,并且能看懂这门脚本语言,知道Gradle...从现在开始我们算是正式的介绍 Groovy 了,在此之前我们先要知道, Groovy ,分号不是必须的。...Groovy单引号引号都可以定义一个字符串常量(Java里单引号定义一个字符),不同的是单引号标记的是纯粹的字符串常量,而不是对字符串里的表达式做运算,但是双引号可以。...单引号没有运算的能力,它里面的所有都是常量字符串。 双引号可以直接进行表达式计算的这个能力非常好用,我们可以用这种方式进行字符串链接运算,再也不用 Java 繁琐的 +号了。...Groovy的闭包有thisObject、owner、delegate个属性,当你闭包内调用方法时,由他们来确定使用哪个对象来处理。

64010

Groovy】字符串 ( 字符串类型变量定义 | 字符类型变量定义 )

文章目录 一、字符串类型变量 二、字符类型变量 、完整代码示例 一、字符串类型变量 ---- 使用 def 关键字声明 Groovy 的 变量 ; 声明字符串 , 可以使用以下方式 : // 字符串...// def 关键字 是 define 缩写 def s1 = "Hello" def s2 = 'Hello' // 单引号也是字符串 def s3 = 'H' // 单引号也是字符串...注意 : 单引号 引号 , 默认都表示字符串 ; Java , 单引号是字符 , 如果要声明字符 , 看下一个小节 ; 使用 println 打印上述 3 个变量的类型 : // 打印上述个变量的类型...def s3 = 'H' // 单引号也是字符串 // 打印上述个变量的类型 println s1.class println...def s3 = 'H' // 单引号也是字符串 // 打印上述个变量的类型 println s1.class println

3.7K20

Gradle-Groovy语法

Groovy 完全兼容 Java 并且在此基础上添加了很多动态类型灵活的特性,比如支持闭包,支持DSL,是一门非常灵活的动态脚本语言。 这篇文章是为了能看懂 Gradle脚本的代码,知道怎么写。...基本数据类型都是Java 的一致,就不拿出来说了。下面说一下,对象,字符串,闭包等; 另外:Groovy 的分号是可以省略的; 字符串 使用单引号引号都可以定义一个字符串常量。...差别是 单引号只是单纯的字符串,不能使用表达式,运算,求值,正则等。..."单引号引号都是字符串 name is ${name}; age is $age ; address is ${address}" println '单引号里无法运算表达式例如 name...is ${name}' } } 执行 character gradle character 得到结果如下 单引号引号都是字符串 name is 张; age is 19 ; address

1.6K10

Groovy】字符串 ( 字符串拼接 | 多行字符串 )

文章目录 一、字符串类型变量 二、多行字符串 、完整代码示例 一、字符串类型变量 ---- 引号字符串 , 使用 ${变量名} 进行字符串拼接 , ${变量名} 符号的取值 , 是 定义时取值...println s4 单引号 , 不能进行字符串连接操作 ; // 单引号不能进行字符串拼接 def s5 = '${s1} World!!!'..., 单引号不行 // ${变量名} 符号的取值 , 是 定义时取值 ; def s3 = "${s1} World!!!"...class java.lang.String 二、多行字符串 ---- 普通字符串 , 使用 \n 符号 , 代表换行操作 , def m1 = "Hello\nWorld" 代表 Hello World..., 单引号不行 // ${变量名} 符号的取值 , 是 定义时取值 ; def s3 = "${s1} World!!!"

2.8K20

Groovy快速入门看这篇就够了

Groovy与 Java可以很好的互相调用并结合编程 ,比如在写 Groovy 的时候忘记了语法可以直接按Java的语法继续写,也可以 Java 调用 Groovy 脚本。...2.Groovy编写调试 Groovy的代码可以Android StudioIntelliJ IDEA等IDE中进行编写调试,缺点是需要配置环境,这里推荐文本编写代码并结合命令行进行调试(文本推荐使用...单引号字符串 Groovy单引号字符串引号字符串都可以定义一个字符串常量,只不过单引号字符串不支持插值。...'Android进阶解密' 双引号字符串 要想插值可以使用引号字符串,插值指的是替换字符串的占位符,占位符表达式为${}或者以$为前缀。...def name = 'Android进阶之光' println "hello ${name}" println "hello $name" 引号字符串 引号字符串可以保留文本的换行缩进格式,不支持插值

12.2K63

Groovy】map 集合 ( 根据 Key 获取 map 集合对应的值 | map.Key 方式 | map.‘Key’ 方式 | map 方式 | 代码示例 )

在上一篇博客 , 定义了如下 map 集合 , // 创建键值对 // 键 Key 可以不使用引号 , 可以使用单引号 '' , 也可以使用引号 "" def map = [J:"Java", "...Value 通过调用 map.Key 的方式 , 获取 map 集合 Key 对应的 Value ; 代码示例 : // 创建键值对 // 键 Key 可以不使用引号..., 可以使用单引号 '' , 也可以使用引号 "" def map = [J:"Java", "K":"Kotlin", 'G':"Groovy"] // 获取...Value ; 代码示例 : // 方式 : 获取 map 集合的值 println map['J'] println map['K']...) { // 创建键值对 // 键 Key 可以不使用引号 , 可以使用单引号 '' , 也可以使用引号 "" def map = [J:"Java"

13.5K30

Groovy】map 集合 ( map 集合定义 | 通过 getClass 函数获取 map 集合的类型 | 代码示例 )

文章目录 一、map 集合定义 二、获取 map 集合类型 、代码示例 一、map 集合定义 ---- 声明键值对 , 其中 键 Key 可以 不使用引号 , 可以 使用单引号 ‘’ , 也可以 使用引号...“” ; // 创建键值对 // 键 Key 可以不使用引号 , 可以使用单引号 '' , 也可以使用引号 "" def map = [J:"Java...【Groovy】集合声明与访问 ( 使用 [] 创建 ArrayList LinkedList 集合 | 集合赋初值 | 使用下标访问集合 | 使用 IntRange 作为下标访问集合 ) ,...---- 代码示例 : class Test { static void main(args) { // 创建键值对 // 键 Key 可以不使用引号 , 可以使用单引号...'' , 也可以使用引号 "" def map = [J:"Java", "K":"Kotlin", 'G':"Groovy"] // map 变量的 class

1.5K20

快速迁移 Gradle 脚本至 KTS

://github.com/bennyhuo/Android-LuaJavax),提交记录当中可以看到 release 1.0 use kts 这两笔提交,前者使用 Groovy 编写 Gradle...经过之前的介绍,大家或多或少应该能了解到,Groovy 当中单引号引起来的也是字符串字面量,因此我们会面对大量这样的写法: include ':app',':luajava', ':luajavax'...显然 Kotlin 当中这是不可以的,因此我们要想办法把字符串字面量的单引号统一改成双引号。...我们很容易地想到使用 IntelliJ IDEA 或者 Android Studio 的全局正则替换(噗,你也可能根本没听说过): ? 使用全局正则匹配替换单引号 匹配框输入正则表达式 '(.*?...依赖版本号的替代方案 我们 Groovy 版本的脚本中经常往 ext 当中添加一些值,以便于后续使用,其中最常见的场景就是依赖的管理,特别是版本号。

3.1K70
领券