如何格式化多行字符串字面量,满足linter校验的同时保证代码美观
优化方案
针对Go语言长格式化字符串的换行需求,社区主流有两种常用的美观解决方案,都可以满足linter行长度限制要求:
方案1:编译期字符串拼接(最推荐,适合不需要内置换行的普通错误信息)
Go编译器会自动将相邻的字符串字面量拼接为一个整体,没有任何运行时性能损耗,也不会在最终字符串中引入多余的换行、缩进字符:
return nil, "", errors.Errorf( "nil cursor returned when querying for transactions for block hash %s, " + "page token %s and limit %d", blockHash, pageToken, limit, )
优点:
- 输出的错误信息和将字符串写在同一行的效果完全一致
- 排版整齐,符合Go官方格式化规范,
go fmt可以自动适配缩进 - 无额外开销,兼容性强
方案2:调整反引号字面量缩进(适合需要内置换行的多行文本场景)
如果你确实需要保留字符串内的换行,可以将反引号包裹的内容顶格编写,避免引入多余的前导缩进空格:
return nil, "", errors.Errorf( `nil cursor returned when querying for transactions for block hash %s, page token %s and limit %d`, blockHash, pageToken, limit, )
内容的提问来源于stack exchange,提问作者septerr
相关产品推荐
相关产品推荐

