在Java中,您可以使用String.Format函数来生成格式化字符串。您还可以使用格式字符串中的i
以您希望的顺序引用函数的参数,其中String.format("My name is %0$s and I am %2$d years old", "Joe", 20);
String.format("My name is %1$s and I am %2$d years old", "Joe", 20);
是您引用的参数的索引。不幸的是,它似乎并不完全一致,因为以下两行代码会产生相同的结果:
export default (req, callback) => {
// ...
compliance.forEach((rule, index) => {
let response = await waRuleOverview(req, run.id, rule.id);
// handle the response
});
}
为什么0和1都引用相同的元素?它不应该是一个严格的基于1的索引而不是基于零的吗?
答案 0 :(得分:3)
看起来它无法识别0$
,因为索引从1开始。因此,它根据%s
的位置获取参数。在这里,%0$s
是参数的第一个引用,因此它需要第一个参数Joe
。
您可以运行并查看以下内容之间的区别:
String.format("%s %1$s %2$d", 1, 20, 13);
Output: 1, 1, 20
String.format("%s %0$s %2$d", 1, 20, 13);
Output: 1, 20, 20