You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:16:19