JEP 430 进入预览,以后 Java 也会有字符串模板了

java 的语法特性真的落后其他语言很多,下面是不同语言的字符串模板语法:

JavaScript     `${x} plus ${y} equals ${x + y}`
C#             $"{x} plus {y} equals {x + y}"
Visual Basic   $"{x} plus {y} equals {x + y}"
Scala          f"$x%d plus $y%d equals ${x + y}%d"
Python         f"{x} plus {y} equals {x + y}"
Ruby           "#{x} plus #{y} equals #{x + y}"
Groovy         "$x plus $y equals ${x + y}"
Kotlin         "$x plus $y equals ${x + y}"
Swift          "\(x) plus \(y) equals \(x + y)"

n 年过去了 java 还是手动拼接的方式,JEP 430 就是为了解决这个问题,不过这个特效 preview 之后还要几年才能稳定。之后 java 会以 STR. 语法支持字符串模板:

String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan");   // true

配合长字符串语法的写法:

String title = "My Web Page";
String text  = "Hello, world";
String html = STR."""
        <html>
          <head>
            <title>\{title}</title>
          </head>
          <body>
            <p>\{text}</p>
          </body>
        </html>
        """;

详细特性可以看这个:JEP 430: String Templates (Preview)

string·templates·java
326 views
Comments
登录后评论
Sign In

好耶!

·

写C&Python的我路过:java才支持?也罢,这就跟python近几个版本才支持switch一样

所以我到底要不要学java呢...