Go で長い文字列リテラルを処理する方法: 生の文字列、連結、またはテンプレート文字列?

DDD
リリース: 2024-11-17 08:41:03
オリジナル
310 人が閲覧しました

How to Handle Long String Literals in Go: Raw Strings, Concatenation, or Template Strings?

Go で長い文字列リテラルを処理するための拡張オプション

長い文字列リテラルに直面すると、Go プログラマは読みやすさと効率のバランスをとるというジレンマに遭遇することがよくあります。提供されているコード スニペットは、生の引用符と連結された引用符という 2 つのアプローチを示しています。

1.生の文字列

db.Exec(`UPDATE mytable SET (I, Have, Lots, Of, Fields) = ('suchalongvalue', 'thisislongaswell', 'ohmansolong', 'wowsolong', 'loooooooooooooooooooooooooong')`)
ログイン後にコピー

生の引用符は複数行の文字列を定義する便利な方法ですが、潜在的な欠点もあります。結果の文字列には先行するスペースと改行が含まれており、データベース フィールド内に見苦しいギャップが生じる可能性があります。

2.複数の連結された引用符

db.Exec("UPDATE mytable SET (I, Have, Lots, Of, Fields) = " + 
    "('suchalongvalue', 'thisislongaswell', 'ohmansolong', " +
    "'wowsolong', 'loooooooooooooooooooooooooong')")
ログイン後にコピー

複数の引用符で囲まれた文字列を連結すると、より柔軟なアプローチが得られます。ただし、慎重に管理しないと、改行や潜在的な構文エラーが発生します。

代替アプローチ: テンプレート文字列

クリーンで効率的なソリューションを実現するために、多くの Go プログラマーは次のオプションを選択します。テンプレート文字列の場合:

q := `UPDATE mytable SET (I, Have, Lots, Of, Fields) = ` +
     `('suchalongvalue', ` + 
     `'thisislongaswell', ` +
     `'wowsolong', ` + 
     `loooooooooooooooooooooooooong')`

db.Exec(q)
ログイン後にコピー

テンプレート文字列は、生の文字列の読みやすさと連結の柔軟性を兼ね備えています。バックティック (``) を文字列の区切り文字として使用し、文字列補間を使用して値を連結することで、見た目が良く、構文的に正しい文字列を作成します。このアプローチは Go の慣用的なアプローチとみなされ、長い文字列リテラルを処理する場合に強く推奨されます。

以上がGo で長い文字列リテラルを処理する方法: 生の文字列、連結、またはテンプレート文字列?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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