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

如何在Xtend的switch语句返回值中插入变量?

解决Xtend Switch中字符串变量插值的问题

我来帮你搞定这个Xtend里的字符串插值问题!你遇到的核心问题是用错了Xtend的字符串插值语法,还混淆了单双引号的作用,导致变量没法正确替换。

关键知识点先理清

Xtend的字符串规则很明确:

  • 双引号字符串支持变量插值,会解析里面的表达式;
  • 单引号字符串是纯文本,不会处理任何插值或表达式;
  • 变量插值的正确写法是 ${变量名},你用的«d.name»是Xtext模板语言的占位符语法,在普通Xtend代码里不生效。

正确的代码写法

当d.name = "Joe"时,把你的switch改成这样就能得到想要的结果:

switch l.name {
    case 'java': "mvn compile..../${d.name}/src/........."
    default: "bash..../${d.name}/src/....."
}

为什么你之前的写法无效?

  1. 你用了单引号包裹字符串:单引号在Xtend里是原始字符串,不管里面写什么都会原样输出,不会解析变量;
  2. 错误的插值语法:«d.name»不是普通Xtend代码的插值方式,只有在Xtext模板上下文里才会被识别,普通switch表达式里用它只会被当成普通文本。

最终效果

当l.name为'java'时,返回字符串:mvn compile..../Joe/src/.........
当l.name是其他值时,返回字符串:bash..../Joe/src/.....

内容的提问来源于stack exchange,提问作者YannickN.fr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:42:57