.git/# Git repository metadata
bmp/
reader.go# package source
writer.go# package source
... (many more repositories and packages omitted) ...
上面的属性图展示了一个包含两个存储库(example和image)的工作区,example 存储库包含两个命令(hello,outyet),image库包含bmp包和几个其他的包 。
一个典型的工作区包含包含许多软件包和命令的多个源库 。大多数程序员将所有的源代码和依赖关系保存在一个工作区中
3、GOPATH环境变量设置
GOPATH环境变量指定工作区的位置 。它很可能是唯一的环境变量,代码开发时需要设置 。
开始,创建一个工作区目录并设置相应的gopath 。您的工作区可以位于任何你喜欢的地方,但我们将在这个文档中使用/data/work 。请注意,这不能是您的“Go安装”路径相同 。
mkdir -p /data/work
export GOPATH=/data/work
为了方便 。添加工作区的bin到PATH中
export PATH=$PATH:$GOPATH/bin
4、导入路径
一个导入路径是唯一标识一个包的字符串 。一个包的导入路径对应于它在工作区内或远程存储库中的位置 。
从标准库的软件包中给出了短的导入路径等 。对于您自己的包,您必须选择不可能和未来添加到标准库或其他外部库的基础路径冲突的路径 。
注意,你不需要将你的代码发布到一个远程存储库之前,你可以建立它 。这只是一个很好的习惯来组织你的代码 , 如果你有一天会出版它 。在实践中,你可以选择任何任意的路径名称 , 只要它是唯一的标准库和更大的去生态系统 。
我们将使用github.com/user作为我们的基本路径 。在您的工作区中创建一个目录,以保持源代码:
mkdir -p $GOPATH/src/github.com/user
5、第一个项目
编译并运行一个简单的程序 , 首先选择一个包的路径(我们将使用github.com/user/hello)和创建在您的工作区相应的软件包目录:
mkdir $GOPATH/src/github.com/user/hello
创建名叫hello.go的文件,上面创建过,此处略过 。
cd $GOPATH/src/github.com/user/hello
go install
$GOPATH/bin/hello
或者:
hello
如果你使用的是一个源代码管理系统,现在是一个很好的时间来初始化一个存储库,添加文件,并提交你的第一次更改 。再次,这一步是可选的:您不需要使用源代码管理来写代码 。
cd $GOPATH/src/github.com/user/hello
git init
Initialized empty Git repository in /data/work/src/github.com/user/hello/.git/
git add hello.go
git commit -m "first commit"
[master (root-commit) bbfb477] first commit
6、first library
mkdir $GOPATH/src/github.com/user/stringutil
下一步 , 在目录下创建一个名为reverse.go文件中有下列内容:
// Package stringutil contains utility functions for working with strings.
package stringutil
// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; ilen(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
使用go build测试包的编译
$ go build github.com/user/stringutil
如果当前位置源码包目录,只需要:
go build
上面操作并不会产生一个输出文件,必须使用go install,把包和对象输出到工作去的pkg目录内
确认stringutil包创建完成后,修改原始hello.go,使用stringutil包:
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("\n !oG ,olleH"))
}
无论使用go安装包还是二进制文件,所有相关的依赖都会自动安装 。所以当你安装hello程序时:
推荐阅读
- 软路由配什么cpu,软路由配什么网卡
- 雪花啤酒如何营销,雪花啤酒营销策划
- 视频号直播卖货选什么类目,视频号直播卖货选什么类目的
- c语言位移函数头文件 c语言中位移运算符
- 平板电脑怎么给u盘传东西,平板怎么传到u盘
- gis如何在属性表里添加字段,arcgis在属性表里添加字段
- mysql查询值为空的数据类型,mysql 查询空值
- 成都go语言的薪资如何 go语言工资高吗
- 区块链线路图解读,区块链线路图解读pdf