You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:33:49