4

下面是一些示例代码:

func main() {
    os.MkdirAll(outDir + id, 0755)
    os.Create(outDir + id + "/txt")
    os.OpenFile(outDir + id + "/" + ".tmp", os.OWRONLY|os_APPEND)
    os.Stat(outDir + id + "/.tmp")
}

以下是使用任一格式化或go fmt按下Go Playground后的输出:Format

func main() {
    os.MkdirAll(outDir+id, 0755)
    os.Create(outDir + id + "/txt")
    os.OpenFile(outDir+id+"/"+".tmp", os.OWRONLY|os_APPEND)
    os.Stat(outDir + id + "/.tmp")
}

和 中的空格在os.MkdirAll()和中未触及时os.OpenFile()被删除。我希望格式是相同的。os.Create()os.Stat()

为什么会这样?

4

1 回答 1

5

见:https ://github.com/golang/go/issues/12720

gofmt 在二进制表达式周围使用空格来表示绑定强度。根据嵌套级别,删除空格。

您还可以通过搜索“gofmt 不一致的空格”轻松找到这些内容。另见问题#1206#1848#1861#7880#11497

于 2016-08-28T18:28:35.900 回答