12

fmt.Sprintf には非常に長い行があります。コードで分割するにはどうすればよいですか?すべてを 1 行にまとめたくないので、コードが見苦しくなります。

fmt.Sprintf("a:%s, b:%s  ...... this goes really long")
4

5 に答える 5

4

次のように、バッククォート内で生の文字列リテラルを使用することもできます。

columns := "id, name"
table := "users"
query := fmt.Sprintf(`
    SELECT %s
    FROM %s
  `, columns, table)
fmt.Println(query)

このアプローチにはいくつかの注意事項があります。

  1. 生の文字列はエスケープ シーケンスを解析しません
  2. すべての空白が保持されるためFROM、このクエリの句の前に改行といくつかのタブがあります。

これらの問題は一部の人にとっては困難な場合があり、空白は醜い結果の文字列を生成します。ただし、長くて複雑な SQL クエリをコードの外部や、テスト用の SQL ワークシートなどの他のコンテキストにコピー アンド ペーストできるため、このアプローチを好みます。

于 2018-04-04T19:54:51.093 に答える
0

別のオプションはstrings.Builder次のとおりです。

package main

import (
   "fmt"
   "strings"
)

func main() {
   b := new(strings.Builder)
   fmt.Fprint(b, "North")
   fmt.Fprint(b, "South")
   println(b.String() == "NorthSouth")
}

https://golang.org/pkg/strings#Builder

于 2021-04-16T01:26:29.407 に答える