Golang中关于gofmt的使用建议

Golang中关于gofmt的使用建议 建议修改 gofmt,以允许将简短的 if 语句块写在一行内。

func test(v int) {
    if v == 0 { return }
    fmt.Println("v is large then 0")
}
3 回复

简洁性和一致性至关重要 我认为这是从Go语言视角出发的核心价值。

更多关于Golang中关于gofmt的使用建议的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


虽然我喜欢这个想法,但我认为 gofmt 试图保持不可配置性,以便每个人都能使用相同的格式。

gofmt 的格式化规则是 Go 社区的统一约定,不建议修改其默认行为。单行简短的 if 语句块虽然在某些情况下可读性较好,但会破坏代码风格的一致性。

如果你确实需要这样的格式,可以使用 gofmt-s 参数进行简化,但不会改变多行规则。更好的做法是接受标准格式化,或者使用 golangci-lint 等工具配置自定义规则。

示例代码按 gofmt 标准格式化后:

func test(v int) {
    if v == 0 {
        return
    }
    fmt.Println("v is large then 0")
}

如果坚持要单行写法,可以考虑使用 if 条件判断配合 return 提前返回:

func test(v int) {
    if v == 0 { return }
    fmt.Println("v is large then 0")
}

但请注意,这不会被 gofmt 自动格式化为单行。

回到顶部