在Go注释中添加非Go代码示例的正确方式(解决gofmt问题)
在Go注释中保留YAML代码示例格式的方法
方法1:使用块注释包裹代码示例
gofmt仅会调整块注释(/* */)自身的缩进位置,不会修改其内部的文本格式。你可以直接按照YAML的规范编写示例,把它放在块注释里,就能避免缩进被篡改:
/* LoadFromYAML 从指定路径读取YAML配置文件并解析为Config结构体。 预期的YAML格式示例: server: port: 8080 timeout: 30s database: host: 127.0.0.1 username: admin password: 123456 */ func LoadFromYAML(path string) (*Config, error) { // 函数实现 }
方法2:在行注释中用反引号标记代码块
若偏好行注释(//),可以用反引号将YAML示例包裹为代码块——gofmt不会修改反引号内部的内容,同时要确保YAML层级缩进使用空格:
// LoadFromYAML 从指定路径读取YAML配置文件并解析为Config结构体。 // // 预期的YAML格式示例: // ```yaml // server: // port: 8080 // timeout: 30s // database: // host: 127.0.0.1 // username: admin // password: 123456 // ``` func LoadFromYAML(path string) (*Config, error) { // 函数实现 }
方法3:使用//go:noformat指令
如果需要保留特定格式的注释内容,可在注释上方添加//go:noformat指令,告知gofmt跳过对这段注释的格式化处理:
//go:noformat // LoadFromYAML 从指定路径读取YAML配置文件并解析为Config结构体。 // // 预期的YAML格式示例: // server: // port: 8080 // timeout: 30s // database: // host: 127.0.0.1 // username: admin // password: 123456 func LoadFromYAML(path string) (*Config, error) { // 函数实现 }
注意://go:noformat会影响其下方的整个代码块(包括注释和代码),建议仅在需要保留格式的注释段使用,避免干扰正常代码的格式化。
内容的提问来源于stack exchange,提问作者Juan Enrique Muñoz Zolotoochin
相关产品推荐
相关产品推荐

