您的位置:首页 > 编程语言 > Go语言

Go/Golang 语言学习笔记总结

2015-04-16 14:21 567 查看
1.有关go语言总go install ,go build 的区别

go install 主要针对不是 package main 即不是main方法的go文件进行编译 达到相应的包中 ,而go build 只能编译main 方法的go文件 ,并且只能 在 执行go build 命令的当前目录 执行编译后的文件 ./main(linux,mac) 或者是main.exe
(windows)程序。 go install 还能编译main 方法的go文件,不管在哪执行该命令 都会把执行文件生成到 $GOPATH/bin 目录下 生成一个可执行的文件,


go install 在编译一个main方法的go文件中如果涉及到 自己写的包文件,那么会自动把该文件编译到相应的文件中生成一个*.a 文件.而go build 并不会生成一个*.a 中间的一个涉及到其他的包文件。如果想强制编译相应的包文件都被重新编译 那么就要用 go install -a 命令来强制编译文件。

2.针对go文件打包及相应包名的引用

举个例子 假如新建立的一个项目为app

目录为 : $GOPATH/src/app

在app目录下建立一个rtb 文件夹 //$GOPATH/src/app/rtb

在该文件下建立一个文件 rtb_index.go // $GOPATH/src/rtb/rtb_index.go

package rtb

import "fmt"

func Hello(){


fmt.Println("say hello")

}

那么对该文件进行打包编译 ,要运行 在 $GOPATH/src/rtb 目录下 执行 go install 以后会把该文件编译到 $GOPATH/bin/${GO_ARCH}/app/的目录下 生成一个rtb.a 文件

接下来接着创建一个文件

vim $GOPATH/src/app/main/main.go

package main

import(

"fmt"

"app/rtb" //此处一定要注意不能把app给省落,如果是 "rtb" 那么在编译的时候 会报找不到该包,GO默认的路径实在

$GOROOT /$GOPATH 中去找你导入的包

)

func main(){

fmt.Println(" run rtb.Hello()")

rtb.Hello()

}

然后执行 go build main.go 在改目录下生成 main ,如果执行 go install 则在 $GOPATH/bin/main 可执行程序

3.区分$GOPATH,$GOROOT 的区别

$GOPATH 是go语言的工作目录(工作环境),而不是 go安装目录,另外$GOROOT 是go语言的安装目录

4.go clean

该命令用来移除该项目中编译后的文件,这样主要是在一些项目的开发中 用代码管理工具的时候主要是针对源码文件,而不比关系编译后的文件。

5.go fmt/gofmt

该命令主要是格式化go文件, gofmt -w mian.go 或者是gofmt -w src ,如果去掉 -w 那么不会将格式化的文件写入文件

6.go get

这个命令是用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install

7.go test

运行 文件中 *_test.go 文件,并且执行这些文件 ,主要用于测试用

8.go doc

该命令主要用于查看package 中的文档,godoc -http:=8080 在浏览器中输入 127.0.0.1:8080 就可以查看golang的帮助文档了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: