标签: gofmt

你可以调用gofmt来格式化你编写的Go代码中编写的文件吗?

我正在编写输出其他Go代码的Go代码.

我想知道是否有办法调用gofmt工具来格式化我写完的代码中编写的代码.

我在gofmt上找到的文档,例如官方文档,都涉及如何从命令行使用gofmt,但我想从Go代码本身调用它.

例:

func WriteToFile(content string) {
    file, err := os.Create("../output/myFile.go")
    if err != nil {
        log.Fatal("Cannot create file", err)
    }
    defer file.Close()
    fmt.Fprint(file, content)
    //Insert code to call gofmt to automatically format myFile.go here
}
Run Code Online (Sandbox Code Playgroud)

提前感谢您的时间和智慧.

go gofmt

3
推荐指数
1
解决办法
473
查看次数

我的gofmt是错误地工作还是我不明白?

我想我的gofmt作品不是它应该如何,我是对的吗?

原始档案:

package main


import "fmt"


func main() {
    fmt.Printf("hello, world\n")
}
Run Code Online (Sandbox Code Playgroud)

然后我做了:

gofmt -r 'h -> H' -w "hello.go"
Run Code Online (Sandbox Code Playgroud)

文件内容:

package H


import "fmt"


func H() {
 H
}
Run Code Online (Sandbox Code Playgroud)

go gofmt

2
推荐指数
1
解决办法
198
查看次数

如何在gofmt工具中使用重写规则将制表符替换为空格?

gofmt命令支持 -r 标志以在格式化代码期间使用重写规则。如何用它来用空格缩进代替制表缩进

go gofmt

1
推荐指数
1
解决办法
2851
查看次数

GoLang gofmt命令

gofmt命令不格式化花括号({}).

码:

package main

import "fmt"

func main() 
{
    fmt.Printf("Hello, world\n")
}
Run Code Online (Sandbox Code Playgroud)

输出gofmt hello.go

hello.go:6:1:预期声明,找到'{'退出状态2

如果我把空间放在任何地方它正确地格式化它.gofmt不会格式化大括号吗?

go gofmt

1
推荐指数
1
解决办法
1183
查看次数

解析JSON数组时的运行时错误,并使用尾随逗号映射元素

Go的主要主题专家之一Dave Cheney写道:"在使用复合文字初始化变量时,Go要求复合文字的每一行以逗号结尾,即使是声明的最后一行.这是分号规则的结果."

但是,当我尝试将这个漂亮的规则应用于JSON文本时,解析器似乎不同意这种理念.在下面的代码中,删除逗号是有效的.有没有解决这个问题,所以当我在差异中添加元素时,我可以看到一行更改?

package main

import (
    "fmt"
    "encoding/json"
)

type jsonobject struct {
    Objects []ObjectType `json:"objects"`
}

type ObjectType struct {
    Name string `json:"name"`
}

func main() {
    bytes := []byte(`{ "objects": 
        [ 
            {"name": "foo"}, // REMOVE THE COMMA TO MAKE THE CODE WORK!
        ]}`)
    jsontype := &jsonobject{}
    json.Unmarshal(bytes, &jsontype)
    fmt.Printf("Results: %v\n", jsontype.Objects[0].Name) // panic: runtime error: index out of range
}
Run Code Online (Sandbox Code Playgroud)

json go gofmt

1
推荐指数
1
解决办法
288
查看次数

如何使用 fmt.Println() 扩展变量

我无法使用 fmt.Println() 扩展变量。

package main
import "fmt"
func main(){
  old := 20
  fmt.Println("I'm %g years old.",old)
}
Run Code Online (Sandbox Code Playgroud)

结果=>

I'm %g years old.
20
Run Code Online (Sandbox Code Playgroud)

go println gofmt

1
推荐指数
1
解决办法
4014
查看次数

gofmt可以容纳本地编码标准首选项吗?

我喜欢gofmtGo编程中的角色。但是,我们希望以下内容:

func somefunc(
    a *sometype, // Explanation of a
    b int, // Explanation of b
    longName float64, // Explanation of longName
) {
...
Run Code Online (Sandbox Code Playgroud)

能够被格式化为:

func somefunc(
    a        *sometype, // Explanation of a
    b        int,       // Explanation of b
    longName float64,   // Explanation of longName
) {
...
Run Code Online (Sandbox Code Playgroud)

类似于结构的格式,并符合我们针对其他语言的编码标准。是否有任何适应这些地方偏爱的规定,或者这“不是我们在这里做事的方式”吗?我找不到对使用的模式的任何访问权限gofmt,所以我的猜测是“否”。

go gofmt

-2
推荐指数
1
解决办法
39
查看次数

标签 统计

go ×7

gofmt ×7

json ×1

println ×1