多行字符串文字的缩进样式

缩进原始字符串文字的建议样式是什么?如果我根据第一行缩进它,它可能无法在具有不同制表符长度的编辑器中正确对齐。例如:


if select == nil {

    select, err = db.Prepare(`select name

                              from table

                              where id=$1`)

    if err != nil {

        return nil, err

    }

}

我发现了这个问题,但我仍然不清楚:Best practice for long string literals in Go


我应该像下面那样做吗?


if select == nil {

    select, err = db.Prepare(`

select name

from table

where id=$1`)

    if err != nil {

        return nil, err

    }

}


慕后森
浏览 205回答 2
2回答

一只甜甜圈

考虑到这两个命题都会在文字字符串中添加换行符或空格,我会赞成(即使fmt格式化第一行):    select, err = db.Prepare(     `select namefrom tablewhere id=$1`)正如 下面的OP akonsu评论的那样,它似乎与 golang 代码本身的风格一致,如 中所示src/cmd/go/main.go#L175,它将第一行保持在开头 ' ('的级别var usageTemplate = `Go is a tool for managing Go source code.Usage:go command [arguments]...`

PIPIONE

关于 SQL,空格无关紧要,所以这只是个人喜好。就我而言,由于 SQL 是一种与 Go 不同的语言,我喜欢确保 SQL 代码与 Go 代码不共享任何行:if select == nil {   select, err = db.Prepare(`   select name   from table   where id = $1   `)   if err != nil {      return nil, err   }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go