有没有办法在变量中声明Groovy字符串格式?

Dan*_* T. 4 groovy

我目前有一个资产管理代码的固定格式,它使用美元符号使用Groovy字符串格式:

def code = "ITN${departmentNumber}${randomString}"
Run Code Online (Sandbox Code Playgroud)

这将生成如下代码:

ITN120AHKXNMUHKL

但是,我有一个新的要求,即代码格式必须是可自定义的.我想通过允许用户设置自定义格式字符串来公开此功能,例如:

OCP $ {} departmentNumber十一$ {} randomString

PAN - $ {} randomString

哪个会输出:

OCP125XIBQHNKLAPICH

PAN-XJKLBPPJKLXHNJ

然后,哪个Groovy将使用适当的变量值进行解释和替换.这是可能的,还是我必须手动解析占位符并手动执行string.replace?

Wil*_*ill 5

是否GString的懒惰计算 (更新链接),符合该法案?

deptNum = "C001"
randomStr = "wot"

def code = "ITN${deptNum}${->randomStr}"

assert code == "ITNC001wot"

randomStr = "qwop"

assert code == "ITNC001qwop"
Run Code Online (Sandbox Code Playgroud)