jos*_*hlf 21 string idioms literals go
我在Go中有一个长字符串文字:
db.Exec("UPDATE mytable SET (I, Have, Lots, Of, Fields) = ('suchalongvalue', 'thisislongaswell', 'ohmansolong', 'wowsolong', 'loooooooooooooooooooooooooong')")
Run Code Online (Sandbox Code Playgroud)
我认为有两种方法可以使它更易于管理:原始引号或多个连接引号:
db.Exec(`UPDATE mytable SET (I, Have, Lots, Of, Fields)
= ('suchalongvalue', 'thisislongaswell', 'ohmansolong',
'wowsolong', 'loooooooooooooooooooooooooong')`)
db.Exec("UPDATE mytable SET (I, Have, Lots, Of, Fields) = " +
"('suchalongvalue', 'thisislongaswell', 'ohmansolong', " +
"'wowsolong', 'loooooooooooooooooooooooooong')")
Run Code Online (Sandbox Code Playgroud)
第一个感觉更正确,但前面的空格将包含在字符串中,使得结果字符串在其中具有尴尬的空格.这些被认为是惯用的Go吗?
小智 7
这就是我所做的:
q := `UPDATE mytable SET (I, Have, Lots, Of, Fields) = ` +
`('suchalongvalue', ` +
`'thisislongaswell', ` +
`'wowsolong', ` +
`loooooooooooooooooooooooooong')`
db.Exec(q)
Run Code Online (Sandbox Code Playgroud)
我认为它看起来干净很多
像这样将长字符串文字放入参数中看起来很奇怪。我会比较喜欢:
const updateQuery=`
UPDATE mytable SET (I, Have, Lots, Of, Fields)
= ('suchalongvalue', 'thisislongaswell', 'ohmansolong',
'wowsolong', 'loooooooooooooooooooooooooong')`
func doUpdate(){
db.Exec(updateQuery)
}
Run Code Online (Sandbox Code Playgroud)
我也更喜欢在开头使用一个换行符,而不是每行中的奇数空格。这样,strings.Trim如果它引起问题,您就可以杀死它。
小智 5
我更喜欢:
var updateStatement = `
UPDATE
mytable
SET
I = 'suchalongvalue'
,Have = 'thisislongaswell'
,Lots = 'ohmansolong'
,Of = 'wowsolong'
,Fields = 'loooooooooooooooooooooooooong'
`
func update(updateStatement string) {
db.Exec(updateStatement)
}
Run Code Online (Sandbox Code Playgroud)
看起来应该干净得多。至少这是教给我的。
你可以这样做:
s := `UPDATE mytable SET (I, Have, Lots, Of, Fields) = `
s += `('suchalongvalue', `
s += `'thisislongaswell', `
s += `'wowsolong', `
s += `loooooooooooooooooooooooooong')`
db.Exec(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8659 次 |
| 最近记录: |