go工具

Posted double12gzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go工具相关的知识,希望对你有一定的参考价值。

以一个简单的例子说明一下go中比较有用的小工具

1. 小工具

1.1 生成一个main.go脚本

jeffreyguan@localhost ~$ cat > main.go
package main
import "fmt"
func main()  fmt.Println("Hello, Jeffrey Guan") 

jeffreyguan@localhost ~$ cat main.go                                                                                                                  130 ?
package main
import "fmt"
func main()  fmt.Println("Hello, Jeffrey Guan") 

1.2. gofmt main.go

jeffreyguan@localhost ~$ gofmt main.go
package main

import "fmt"

func main()  fmt.Println("Hello, Jeffrey Guan") 

1.3. gofmt -d main.go

jeffreyguan@localhost ~$ gofmt -d main.go
diff -u main.go.orig main.go
--- main.go.orig    2019-08-17 21:42:13.000000000 +0800
+++ main.go 2019-08-17 21:42:13.000000000 +0800
@@ -1,5 +1,5 @@
 package main
-import "fmt"
-func main()  fmt.Println("Hello, Jeffrey Guan") 

+import "fmt"

+func main()  fmt.Println("Hello, Jeffrey Guan") 

1.4. gofmt -w main.go

jeffreyguan@localhost ~$ gofmt -w main.go

jeffreyguan@localhost ~$ cat main.go
package main

import "fmt"

func main()  fmt.Println("Hello, Jeffrey Guan") 

1.5. go build

jeffreyguan@localhost ~$ go build main.go
jeffreyguan@localhost ~$ file main
main: Mach-O 64-bit executable x86_64

按平台生成可执行文件

jeffreyguan@localhost ~$ GOOS=windows go build main.go

jeffreyguan@localhost ~$ file main.exe
main.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows

1.6. go get

go get github.com/golang/example/hello

1.7. go list

jeffreyguan@localhost ~/lanjie$ cat main.go
// demo is also demo
package main

import "fmt"

func main()  fmt.Println("Hello, Jeffrey Guan") 
jeffreyguan@localhost ~/lanjie$ go list -f ' .Name '
main
jeffreyguan@localhost ~/lanjie$ go list -f ' .Name :  .Doc'
main: demo is also demo
jeffreyguan@localhost ~/lanjie$ go list -f ' .Name :  .Doc'
main: demo is also demo
jeffreyguan@localhost ~/lanjie$ go list -f ' .Imports '
[fmt]
jeffreyguan@localhost ~/lanjie$ go list -f ' join .Imports "\n"' fmt
errors
internal/fmtsort
io
math
os
reflect
strconv
sync
unicode/utf8
jeffreyguan@localhost ~/lanjie$ go list -f ' .Doc ' fmt
Package fmt implements formatted I/O with functions analogous to C's printf and scanf.

1.8. do doc

jeffreyguan@localhost ~/lanjie$ go doc fmt
jeffreyguan@localhost ~/lanjie$ go doc fmt Println
func Println(a ...interface) (n int, err error)
    Println formats using the default formats for its operands and writes to
    standard output. Spaces are always added between operands and a newline is
    appended. It returns the number of bytes written and any write error
    encountered.

# 在本地启动go doc
jeffreyguan@localhost ~/lanjie$ godoc -http=localhost:6060

1.9 errcheck

1.10 go vet

1.11 go-wrk

1.12 go tool pprof

1.13 go-torch

2. 通过go启动web服务

参考1
参考2

以上是关于go工具的主要内容,如果未能解决你的问题,请参考以下文章

Go语言泛型工具go2go

Go语言泛型工具go2go

3Go版本管理工具

go工具

Go语言之开发工具

14. Go 语言编译与工具