首页 > 后端开发 > Golang > 正文

如何在 fmt.Sprintf 格式字符串中多次引用参数?

DDD
发布: 2024-11-09 05:34:02
原创
326 人浏览过

How can I reference parameters multiple times in fmt.Sprintf format strings?

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板