7.1 Go命令行工具
查看版本:
go version
查看帮助:
go help
go clean
go doc(godoc)
go list
go fix(go tool fix)
go vet(go tool vet)
go tool pprof
go tool cgo
go get:
go get github.com/astaxie/beego 执行后会执行git clone 把项目放到D:\Program-Files\go\mygo\src\github.com\astaxie\beego目录下面,D:\Program-Files\go\mygo这个目录就是GOPATH。
go get -u
go build xx.go
go install
go run xx.exe
go fmt
go test
go doc(godoc)
go env
GOOS:darwin,freebsd,linux,windows,android,dragonfly,netbsd,openbsd,plan9,solaris
GOARCH:arm,arm64,386,amd64,ppc64,ppc64le,mips64,mips64le,s390x
7.2 代码风格
7.2.1 强制性编码规范
程序入口
每个Go源代码文件的开头都是一个package声明。要生成Go可执行程序,必须建立一个名字为main的包,并且在该包中包含一个叫main()的函数(该函数是Go可执行程序的执行起点),其他go文件不是main包不允许main方法出现。这样通过go build/run编译链接成可执行文件xx.exe。 main()函数不能带参数,也不能定义返回值。go项目执行过程:
注释
和C++/java一样
语句没有分号结尾,和python等简洁语言一样。
导入包,注意导入包没有被使用编译报错:
import (
"fmt"
)
或者:
import err "errors"
import "fmt"
变量命名:
C++/java开发等遵照驼峰命名方法,下划线命名方法,这里注意,sql语句不区分表命名有些软件不区分大小写,所以对于这些考虑下划线命名方法。而go语言不使用下划线命名方法。不需要对外暴露的名字private(变量,函数,结构,接口)采用小写开头,对外暴露的名字public大写开头。
花括号问题:
if a > b {
return a, nil
} else {
return b, nil
}
go语言第一个大括号不可以一行!必须写在a>b之后。
7.2.2 非强制性编码风格建议
格式化xx.go的代码:
go fmt xx.go
7.5 文档管理
类似javadoc生成文档:
go doc xx.go
生成html文档,打开浏览器8080端口,查看当前目录代码的注释:
godoc -http=:8080 -path="."
为了godoc能够识别注释,注释需要如下规则:
7.6 工程构建
7.7 跨平台开发
7.7.1 交叉编译
就是在执行go build时候,添加参数,生成linux/windows等平台的二进制文件。比如
ngrok编译参数:
gogs编译参数:
7.7.2 Android支持
7.8 单元测试
以xx_test.go文件命令都是测试文件。
函数测试分功能测试和性能测试两种。
7.9 打包分发
Go语言开发了一个库,那么最合适的库分发方式是直接打包源代码包并进行分发,由使用者自行编译。 go暂时没有类似java的maven对每一个库进行版本管理。
这篇文章还没有评论