ホームページ > バックエンド開発 > Golang > fmt.Sprintf 形式の文字列でパラメーターを複数回参照するにはどうすればよいですか?

fmt.Sprintf 形式の文字列でパラメーターを複数回参照するにはどうすればよいですか?

DDD
リリース: 2024-11-09 05:34:02
オリジナル
376 人が閲覧しました

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 を参照します。

Example

このアプローチを使用した例を次に示します。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート