golang工程约定,分包和编译
go-lang已经发布了go1.1.2,前段时间看了一下go语言的教程,就喜欢上了这门语言,但使用多个文件编译是碰到一些麻烦,引用出错编译通不过,google之找到了相关教程:
https://golang.org/doc/code.html
http://lavafree.iteye.com/blog/1683363,
http://blog.studygolang.com/2012/12/go项目的目录结构/
并按自己的理解记录一下,并进行了实验。我的项目目录如下所示:
goproject # 工程根目录
|.........src # 源代码
|.....com
|. ..main
|...main.go #这个必须在main包,有main函数
|......sqrt
|...sqrt.go #包内源代码文件,不包含main函数
如上结构是go的目录结构了,其实bin和pkg是不用自己建立的,go编译自动生成。
实战一下:
1.在d:\下新建goproject目录
2.设置GOPATH环境变量
GOPATH = d:\goprojcet
3.goproject下新建src
4.src下新建sqrt,旗下新建sqrt及sqrt.go文件
5.sqrt.go文件输入代码
package sqrt
// Sqrt returns an approximation to the square root of x.
func Sqrt(x float64) float64 {
// This is a terrible implementation.
// Real code should import "math" and use math.Sqrt.
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
6.com下新建main,旗下新建main.go
7.main.go输入
package main
import (
"com/sqrt"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", sqrt.Sqrt(2))
}
8.命令行切换到src下,输入命令
go install com/sqrt
这时候根goproject下生成一个pkg
9.src下输入命令
go install com/main
编译生成main(main.exe)命令行
10.执行./main(main.exe)就有输出了
go的这种约定很简洁,其实GOROOT就相当于(JAVA_HOME)
GOPATH 相当于PATH,依赖路径,可以配置多个,linux用冒号(:)隔开,window用分号(;)
GO的引用是 一级包/二级包/包名 比如com/sqrt
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。