请教Jenkins Groovy中左移运算符<<的含义(附代码示例)
Jenkins Groovy中左移运算符
<<的含义解析 在你给出的代码片段里,<<并不是传统数值运算里的左移操作,而是Groovy针对字符串/字符串构建器重载的追加操作符,具体分两种常见场景:
1. 当sb_mail_Filename是StringBuilder/StringBuffer实例
这是Jenkins Pipeline里最常用的场景(用构建器高效拼接字符串),<<等价于调用append()方法,会把右侧的内容直接追加到构建器的末尾,因为构建器是可变对象,这种方式性能比普通字符串拼接更高。比如:
def sb = new StringBuilder("base_") sb << "v2.0" << "_build" // 最终构建器内容为"base_v2.0_build"
2. 当sb_mail_Filename是普通字符串
Groovy对不可变字符串也重载了<<,作用就是字符串拼接,会返回一个新的字符串对象。这种方式虽然直观,但频繁拼接时性能不如StringBuilder,适合短场景使用。
回到你的代码示例:
[sb_mail_Filename << props.LinkVarVariant << '_#' << env.BUILD_NUMBER << '<em>cp</em>' << CPNUM_PARAM << '.log']
这段代码是连续链式调用<<操作,把props.LinkVarVariant、固定字符串_#、构建号env.BUILD_NUMBER、<em>cp</em>、参数CPNUM_PARAM以及后缀.log依次追加到sb_mail_Filename中,最终生成一个整合了所有内容的字符串/构建器实例,再将其放入列表中。
举个实际值代入的例子:假设props.LinkVarVariant为"v1.5",env.BUILD_NUMBER为"200",CPNUM_PARAM为"789",最终拼接结果会是:v1.5_#200<em>cp</em>789.log
内容的提问来源于stack exchange,提问作者Furqan Iqbal
相关产品推荐
相关产品推荐

