为了账号安全,请及时绑定邮箱和手机立即绑定

go 生成标准输出到 gofmt 到文件

go 生成标准输出到 gofmt 到文件

Go
幕布斯6054654 2022-05-18 16:06:10
go generate 的语法是什么,可以将 stdout 从 go run 传输到 gofmt 并最终传输到文件?下面是我尝试过的简单示例。它在文件中main.go。搜索后我找不到任何这样的例子。谢谢你。编辑:最终我想使用go generate并让它写一个格式化的文件。//go:generate go run main.go | go fmt > foo.gopackage mainimport "fmt"const content = `package mainfunc     foo() string {return "Foo"}`func main() {    fmt.Print(content)}
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

直接使用格式包而不是运行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 工具的所有系统上都可用。


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号