Java 里面有没有类似 es6 的模板字符串语法?

2020-06-17 13:00:55 +08:00
 lxk11153
`In JavaScript this is
 legal. "233"`
5245 次点击
所在节点    Java
17 条回复
GM
2020-06-17 13:04:51 +08:00
没有。
Java 14 支持有多行字符串,但是根据现在的尿性,11 普及还远,大概率五年后也享受不到这种语法糖。
xeathen
2020-06-17 13:05:04 +08:00
jdk13 支持文本块了。
ChanKc
2020-06-17 13:05:08 +08:00
xeathen
2020-06-17 13:06:24 +08:00
@GM #1 我公司已经在用 JDK14 了哈哈,小公司就是奔放
lxk11153
2020-06-17 13:13:28 +08:00
@xeathen #2
@ChanKc #3 文本块里的双引号需要转义吗?
liuxey
2020-06-17 13:16:55 +08:00
看示例:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
Object obj = engine.eval("""
function hello() {
print('"Hello, world"');
}

hello();
""");
ChanKc
2020-06-17 13:18:12 +08:00
@lxk11153 https://openjdk.java.net/jeps/378
完整阅读 escape 相关的部分就好
xiangyuecn
2020-06-17 13:18:38 +08:00
自己写一个 java 文件的预处理吧,想写什么自定义语法就写什么语法

比如我就会写:
```java
String text=""/*<<<EOF

abc

/*doc*_/
efg

EOF*/;
```

扔给 javac 编译前,先调用一遍自己的预编译工具,编译自己定义的语法为标准 java 语法
reeco
2020-06-17 13:23:09 +08:00
没有,直接换 kotlin 吧
HENQIGUAI
2020-06-17 13:24:40 +08:00
Rwing
2020-06-17 13:26:05 +08:00
C# 欢迎各位

string text = $"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.";

string query = @"SELECT foo, bar
FROM table
WHERE id = 42";
lxk11153
2020-06-17 13:27:57 +08:00
@Rwing #10
@HENQIGUAI #11
@reeco #9 这就是编程语言鄙视链吗? i 了 i 了
Rwing
2020-06-17 13:47:26 +08:00
@lxk11153 不敢不敢,在中国谁敢鄙视 java 啊,javaer 说句话,中国 it 行业都抖三抖
zhaorunze
2020-06-17 14:00:40 +08:00
语言只是工具,hellow word 一百种简写方法,也没啥用
zhuweiyou
2020-06-17 14:10:24 +08:00
不支持。
写个模板文件来 render 吧
GM
2020-06-17 14:28:51 +08:00
@xeathen 咦?我记得是 14 啊?记错了?
Mistwave
2020-06-17 14:41:06 +08:00
Scala 欢迎你

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/682318

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX