首页 >后端开发 >Golang >如何使用参数索引在 Go 的 fmt.Sprintf 中重复变量?

如何使用参数索引在 Go 的 fmt.Sprintf 中重复变量?

Patricia Arquette
Patricia Arquette原创
2024-12-30 10:59:18873浏览

How Can I Repeat a Variable in Go's fmt.Sprintf Using Argument Indexes?

利用显式参数索引在 Sprintf 中复制变量

在传统的 fmt.Sprintf() 用法中,变量被顺序替换到格式化字符串中。然而,在整个字符串中复制单个变量是可行的。

解决方案

利用显式参数索引,可以修改格式字符串以引用多个相同的参数times:

val := "foo"
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)

格式动词之前的 %[n] 表示法指定要使用的参数的索引。在本例中,%[1] 表示第一个参数 (val) 应用于占位符的所有实例。

输出

执行修改后的 Sprintf:

fmt.Println(s)

产生:

foo in foo is foo

实际上,字符串中的每个变量占位符都是替换为 val 的值,得到所需的复制。

简化形式

对于第一个参数应一致使用的特定场景,可以省略 %[1] 索引:

fmt.Sprintf("%v in %[1]v is %[1]v", "foo")

此缩写语法简化了格式化字符串,同时仍实现相同的复制功能。

以上是如何使用参数索引在 Go 的 fmt.Sprintf 中重复变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn