如何在 fmt.Sprintf 格式字符串中多次引用相同的参数
在 Go 中,fmt 包提供了一种便捷的方法使用 Sprintf 函数格式化字符串。但是,在格式字符串中多次指定相同的参数可能会很麻烦。
考虑以下示例:
func getTableCreationCommands(v string) string { return ` CREATE TABLE share_` + v + ` PARTITION OF share FOR VALUES IN (` + v + `); CREATE TABLE nearby_` + v + ` PARTITION OF nearby FOR VALUES IN (` + v + `); ` }
这里,我们必须将参数 'v' 重复四次创建 SQL 命令的时间。我们可以使用显式参数索引在格式字符串中多次引用同一参数,而不是这种冗长的方法。
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")) }
在此修改后的函数中,我们将参数索引 [1] 括在方括号内在格式化动词 (%v) 之前,表明我们要使用传递给 Sprintf 的第一个参数,在本例中是字符串“X”。此代码片段的 Playground 链接是 https://play.golang.org/p/fKV3iviuwll。
使用显式参数索引允许我们仅传递参数一次,并根据需要在格式字符串中引用它,从而产生以更简洁和可读的实现方式。
以上是如何在 Go fmt.Sprintf 格式字符串中多次重复使用相同的参数?的详细内容。更多信息请关注PHP中文网其他相关文章!