使用此 Xtend 代码:
«switch l.name {
case 'java': 'mvn compile..../«d.name»/src/.........'
default: 'bash..../«d.name»/src/......'
}»
and d.name = "Joe"
我希望使用插入的变量返回此格式化字符串:
mvn compile..../Joe/src/.........
bash..../Joe/src/.....
和不:
mvn compile..../«d.name»/src/.........
bash..../«d.name»/src/......
PS : case 'java': 'mvn compile..../'«d.name»'/src/.........'
doesn't work
我无法/我不知道如何在返回的String中插入任何内容。 有什么想法吗?
答案 0 :(得分:1)
您可以在可以使用Xtend表达式的任何地方使用'''template string with «placeholderExpression» parts'''
- 即使在«placeholderExpression»
内也是如此。所以这应该有效:
«switch l.name {
case 'java': '''mvn compile..../«d.name»/src/.........'''
default: '''bash..../«d.name»/src/......'''
}»
and d.name = "Joe"
然而:不要把它筑巢太深或者你的头会爆炸; - )
答案 1 :(得分:0)
我找到了解决方案:
«switch l.name {
case 'java': 'mvn compile..../'+d.name+'/src/.........'
default: 'bash..../'+d.name+'/src/......'
}»
and d.name = Joe
将按预期返回:
mvn compile..../Joe/src/.........
bash..../Joe/src/.....
所以添加 +
来连接返回的字符串的不同部分,因为我们在«...»
内部不添加«»