我正在尝试验证我对字符串插值和字符串模板的理解。
这两个 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 支持插值。
您的前两个代码片段是格式化示例。 你的第三个片段是插值。
Java 的字符串模板类似于插值,但更灵活、更强大、更安全。
Java 的字符串模板功能在 JEP 430 中进行了描述,并且它作为预览功能出现在 JDK 21 中。这是一个使用示例:
return STR."name: \{name} salary: \{salary} address: \{address}"