在 fmt.Sprintf 格式字符串中多次引用参数
在您的代码中,您有一个使用 fmt 创建表创建命令的函数。斯普林特夫。您希望避免多次传递相同的参数。
使用显式参数索引的解决方案
根据 fmt.Printf 及相关函数的文档,可以使用显式参数索引用于格式化第 n 个参数的参数索引:
func getTableCreationCommands(s string) string { return fmt.Sprintf(` CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v); `, s) }
在格式字符串中,%[1]v引用第一个参数 s。
示例
这是使用此方法的示例:
package main import "fmt" func getTableCreationCommands(s string) string { return fmt.Sprintf(` CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v); `, s) } func main() { fmt.Println(getTableCreationCommands("X")) }
输出:
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
通过使用显式参数索引,您可以多次引用同一参数而不传递它分别。
以上是如何在 fmt.Sprintf 格式字符串中多次引用参数?的详细内容。更多信息请关注PHP中文网其他相关文章!