ホームページ  >  記事  >  バックエンド開発  >  Go fmt.Sprintf フォーマット文字列で同じパラメータを複数回再利用するにはどうすればよいですか?

Go fmt.Sprintf フォーマット文字列で同じパラメータを複数回再利用するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-07 05:55:03881ブラウズ

How Can I Reuse the Same Parameter Multiple Times in a Go fmt.Sprintf Format String?

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' を 4 回繰り返す必要があります。 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 です。

明示的な引数インデックスを使用すると、パラメータを 1 回だけ渡し、フォーマット文字列内で必要に応じて参照できるようになります。より簡潔で読みやすい実装になります。

以上がGo fmt.Sprintf フォーマット文字列で同じパラメータを複数回再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。