go generate stdout 管道传输到 gofmt 到文件
go generate stdout piped to gofmt to file
go generate 可以将 stdout 从 go 运行 gofmt 传输到文件的语法是什么?下面是我尝试过的简单示例。它在文件 main.go
中。搜索后我找不到任何这样的例子。谢谢。
编辑:最终我想使用 go generate
并让它写入格式化文件。
//go:generate go run main.go | go fmt > foo.go
package main
import "fmt"
const content = `
package main
func foo() string {return "Foo"}
`
func main() {
fmt.Print(content)
}
直接使用format package代替运行宁shell:
//go:generate go run main.go
package main
import (
"go/format"
"io/ioutil"
"log"
)
const content = `
package main
func foo() string {return "Foo"}
`
func main() {
formattedContent, err := format.Source([]byte(content))
if err != nil {
log.Fatal(err)
}
err = ioutil.WriteFile("foo.go", formattedContent, 0666)
if err != nil {
log.Fatal(err)
}
}
避免使用像 bash 这样的 shell,因为 shell 可能不适用于所有安装了 Go 工具 运行.
的系统
go generate 可以将 stdout 从 go 运行 gofmt 传输到文件的语法是什么?下面是我尝试过的简单示例。它在文件 main.go
中。搜索后我找不到任何这样的例子。谢谢。
编辑:最终我想使用 go generate
并让它写入格式化文件。
//go:generate go run main.go | go fmt > foo.go
package main
import "fmt"
const content = `
package main
func foo() string {return "Foo"}
`
func main() {
fmt.Print(content)
}
直接使用format package代替运行宁shell:
//go:generate go run main.go
package main
import (
"go/format"
"io/ioutil"
"log"
)
const content = `
package main
func foo() string {return "Foo"}
`
func main() {
formattedContent, err := format.Source([]byte(content))
if err != nil {
log.Fatal(err)
}
err = ioutil.WriteFile("foo.go", formattedContent, 0666)
if err != nil {
log.Fatal(err)
}
}
避免使用像 bash 这样的 shell,因为 shell 可能不适用于所有安装了 Go 工具 运行.
的系统