🪆 嵌套字符串模板
在大多数情况下,不需要在模板表达式中进行字符串拼接的工作,因为字符串模板本身就在做这件事,如:
// 就是把 a 和 b 两个变量拼接成一个字符串
@Get(url = "/{a}/{b}")
String send();
1
2
3
2
3
但还是有些场景,需要在表达式当中进行动态字符串拼接的,如当一个变量为空时,默认值是包含另一个变量的字符串
// 如果 a 为空,则返回 b 的值
@Get(url = "/{a ?? b}")
String send();
1
2
3
2
3
似乎也可以,但再复杂一些的场景就不行了,比如把上面的例子改成“若 a 为空则返回变量 b 和变量 c 的拼接字符串,并用/
分割它们”,这就不好做了。
于是就需要引入嵌套字符串模板的语法: 用两个反引号`
将要拼接的字符串内容包裹起来,并且当中可以使用#{配置属性}
、${表达式}
、{表达式}
等嵌套表达式语法
// 如果 a 为空,则返回 b 和 c 用斜杠拼接后的字符串
// 若 a 为空, b 为 foo,c 为 bar,则 URL 为 /foo/bar
@Get(url = "/{a ?? `{b}/{c}`}")
String send();
// 任何一种形态内容都可以,可以理解为就是一种字符串,一种在表达式内部可动态拼接的字符串
@Get(url = "/{a ?? `?b={b}&c={c}`}")
String send2();
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
帮助我们改善此文档 (opens new window)
上次更新: 2025/06/24, 01:16:57