Go の fmt.Sprintf でパラメータを効率的に参照するにはどうすればよいですか?

DDD
リリース: 2024-11-07 16:40:03
オリジナル
822 人が閲覧しました

How Can I Efficiently Reference Parameters in Go's fmt.Sprintf?

fmt.Sprintf でのパラメータの効率的な参照

fmt.Sprintf を使用して Go で文字列を正確にフォーマットするには、引数がどのようにマッピングされるかを理解することが重要です。動詞のフォーマット。デフォルトでは、各動詞は次に使用可能な引数をフォーマットし、順次関係を作成します。

ただし、明示的な引数インデックスを使用すると、同じパラメータを複数回渡す必要性を克服できます。書式設定動詞の前に [n] を付けます。n は、書式設定する引数の 1 つのインデックス付き位置を表します。

この手法は、getTableCreationCommands などの関数で特に役立ちます。変数 v を 4 回渡す代わりに、変数 v を 1 回渡して、次のように fmt.Sprintf 文字列内で参照できます。

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)
ログイン後にコピー

この例では、文字列 s を 1 回渡し、引数インデックス [ 1] を使用して、フォーマットされた文字列内でそれを参照します。このアプローチにより、書式設定プロセスが合理化され、コードの重複が減り、保守性が向上します。

完全な例は次のとおりです:

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);
ログイン後にコピー

以上がGo の fmt.Sprintf でパラメータを効率的に参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!