GOPATH 和 workspace
go语言的核心原则是保持简单,在项目构造 方面,源代码 和 和 构建脚本是 放在一起的,结构是固定的,就像maven那样。
先在path后多加一个 go(下载解压后的go包)的bin,使你可以自由使用go的命令
GOPATH 的系统环境变量,和ava_home 对于 java 不一样,目的是为了让go的命令和其它相关工具找到go的workspace
GOPATH d:\home\user\ext;d:\home\user\mygo可以有多个,分号分开。unix中冒号分开。
每个workspace的结构
src
contains Go source files,pkg
contains compiled package objects, andbin
contains executable commands
创建这三个文件夹。
然后就可以再src下 写 go的源文件了,
命令然后再 执行 go install 命令
对于sqrt.go文件 它的文件路径是D:\workspacego\src\example\newmath
D:\workspacego 是 gopath
src 是源码目录
example算是项目名
newmath 这是代码中 package的包声明
package newmath
// 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
}
而另外一个文件hello.go D:\workspacego\src\example\hello
它的package是 main 代表了 他的 main函数是这个project的入口
不像上边的package要与文件目录名保存一致,如果是main则是 文件名与目录名保存一致
它会被转换为一个执行命令
package main
import (
"example/newmath"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", newmath.Sqrt(2))
}
go install example/hello编译 安装命令
bin/ hello # command executable pkg/ linux_amd64/ example/ newmath.a # package object src/ example/ hello/ hello.go # command source newmath/ sqrt.go # package sourcebin下会生成一个执行命令,在window下是hello.exe
有疑问加站长微信联系(非本文作者)