插值和模板化

问题描述 投票:0回答:1

我正在尝试验证我对字符串插值和字符串模板的理解。

这两个 Java 代码片段是模板化的示例,这样说是否正确?

public class Person {
 //showing only relevant code
 public String toString() {
   return "Name: " + name + " salary: " + salary + " address: " + address;
 }
}

public String toString() {
  return String.format("name: %s salary: %d address: %s", name, salary, address);
}

这个 Groovy 片段是字符串插值的示例:

public class Person {
  def name
  def salary
  def address

  //showing only relevant parts of the code
  public String toString() {
    return """ name: ${name} salary: ${salary} address: ${address}"""
  }
}

Java 和 Python 支持模板但不支持插值,这是正确的吗?但 Groovy 支持插值。

templating string-interpolation
1个回答
0
投票

您的前两个代码片段是格式化示例。 你的第三个片段是插值。

Java 的字符串模板类似于插值,但更灵活、更强大、更安全。

Java 的字符串模板功能在 JEP 430 中进行了描述,并且它作为预览功能出现在 JDK 21 中。这是一个使用示例:

return STR."name: \{name} salary: \{salary} address: \{address}"
© www.soinside.com 2019 - 2024. All rights reserved.