Go代码的格式不一致?

时间:2016-08-28 17:06:33

标签: go gofmt

以下是一些示例代码:

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 fmtGo 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()中不受影响时会被删除。我希望格式化相同。

为什么会这样?

1 个答案:

答案 0 :(得分:5)

请参阅:https://github.com/golang/go/issues/12720

  

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

     

您也可以通过搜索" gofmt不一致空格"轻松找到这些内容。   另请参阅问题#1206#1848#1861#7880#11497