3 回答

TA貢獻1824條經驗 獲得超5個贊
使用字符串連接在多行上構造單個字符串值:
fmt.Sprintf("a:%s, b:%s " +
" ...... this goes really long",
s1, s2)
本示例中的長字符串是在編譯時構建的,因為字符串連接是一個常量表達式。
您可以使用原始字符串文字在包含的換行符處拆分字符串:
fmt.Sprintf(`this text is on the first line
and this text is on the second line,
and third`)

TA貢獻1155條經驗 獲得超0個贊
您還可以在反引號內使用原始字符串文字,如下所示:
columns := "id, name"
table := "users"
query := fmt.Sprintf(`
SELECT %s
FROM %s
`, columns, table)
fmt.Println(query)
這種方法有一些注意事項:
原始字符串不解析轉義序列
所有空格都將被保留,因此FROM在此查詢中的子句之前會有一個換行符和幾個制表符。
這些問題對某些人來說可能是一個挑戰,空格會產生一些難看的結果字符串。但是,我更喜歡這種方法,因為它允許您將長而復雜的 SQL 查詢復制并粘貼到代碼之外并粘貼到其他上下文中,例如用于測試的 sql 工作表。

TA貢獻1775條經驗 獲得超8個贊
您還可以在反引號內使用原始字符串文字,如下所示:
columns := "id, name"
table := "users"
query := fmt.Sprintf(`
SELECT %s
FROM %s
`, columns, table)
fmt.Println(query)
這種方法有一些注意事項:
原始字符串不解析轉義序列
所有空格都將被保留,因此FROM在此查詢中的子句之前會有一個換行符和幾個制表符。
這些問題對某些人來說可能是一個挑戰,空格會產生一些難看的結果字符串。但是,我更喜歡這種方法,因為它允許您將長而復雜的 SQL 查詢復制并粘貼到代碼之外并粘貼到其他上下文中,例如用于測試的 sql 工作表。
- 3 回答
- 0 關注
- 558 瀏覽
添加回答
舉報