没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
1 GO环境配置环境配置
欢迎来到Go的世界,让我们开始探索吧!
Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:
它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。
Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。
Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型
的面向对象语言更轻量级。
Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。
按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。
Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现
代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并
发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
在本章中,我们将讲述Go的安装方法,以及如何配置项目信息。
目录目录
links
目录
下一节: Go安装
1.1 Go 安装安装
Go的三种安装方式的三种安装方式
Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:
Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方
便而熟悉的。
Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自己的系统
位数下载好相应的安装包,一路next就可以轻松安装了。
第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那
些熟悉相应系统的用户。
最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好的工具,除非你
知道怎么处理。
Go源码安装源码安装
在Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。
在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。
在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行sudo apt-get install gcc libc6-dev来安装编译
工具。
在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。
Go使用Mercurial进行版本管理,首先你必须安装了Mercurial,然后才能下载。假设你已经安装好Mercurial,执行如下代码:
假设已经位于Go的安装目录 $GO_INSTALL_DIR下
hg clone -u release https://code.google.com/p/go
cd go/src
./all.bash
运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。
上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。
然后设置几个环境变量,
export GOROOT=$HOME/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
看到如下图片即说明你已经安装成功
图1.1 源码安装之后执行Go命令的图
如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是
否包含了Go的安装目录。
Go标准包安装标准包安装
Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他
们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
如何判断自己的操作系统是如何判断自己的操作系统是32位还是位还是64位?位?
我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。
Windows系统用户请按Win+R运行cmd,输入systeminfo后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显
示“x64-based PC”,即为64位系统;若显示“X86-based PC”,则为32位系统。
Mac系统用户建议直接使用64位的,因为Go所支持的Mac OS X版本已经不支持纯32位处理器了。
Linux系统用户可通过在Terminal中执行命令uname -a来查看系统信息:
64位系统显示
<一段描述> x86_64 x86_64 x86_64 GNU/Linux
//有些机器显示如下,例如ubuntu10.04
x86_64 GNU/Linux
32位系统显示
<一段描述> i686 i686 i386 GNU/Linux
Mac 安装安装
访问下载地址,32位系统下载go1.0.3.darwin-386.pkg,64位系统下载go1.0.3.darwin-amd64.pkg,双击下载文件,一路默认安
装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的~/go/bin,这个时候打开终端,输入go
看到类似上面源码安装成功的图片说明已经安装成功
如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否
包含了go的安装目录。
Linux 安装安装
访问下载地址,32位系统下载go1.0.3.linux-386.tar.gz,64位系统下载go1.0.3.linux-amd64.tar.gz,
假定你想要安装Go的目录为 $GO_INSTALL_DIR,后面替换为相应的目录路径。
解压缩tar.gz包到安装目录下:tar zxvf go1.0.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR。
设置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin
然后执行go
图1.2 Linux系统下安装成功之后执行go显示的信息
如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否
包含了go的安装目录。
Windows 安装安装
访问下载地址,32位系统下载go1.0.3.windows-386.msi,64位系统下载go1.0.3.windows-amd64.msi。双击打开下载的文件,一
路按照默认点击下一步,这个时候go已经安装到你的系统中,默认安装之后已经在你的系统环境变量中加入了c:/go/bin,这个
时候打开cmd,输入go
看到类似上面mac安装成功的图片说明已经安装成功
如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是
否包含了Go的安装目录。
第三方工具安装第三方工具安装
GVM
gvm是第三方开发的Go多版本管理工具,类似ruby里面的rvm工具。使用起来相当的方便,安装gvm使用如下命令:
bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
安装完成后我们就可以安装go了:
gvm install go1.0.3
gvm use go1.0.3
执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。
apt-get
Ubuntu是目前使用最多的Linux桌面系统,使用apt-get命令来管理软件包,我们可以通过下面的命令来安装Go:
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable
homebrew
homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已支持Go,可以通过命令直接安装Go:
brew install go
links
目录
上一节: Go环境配置
下一节: GOPATH 与工作空间
1.2 GOPATH与工作空间与工作空间
GOPATH设置设置
go 命令依赖一个重要的环境变量:$GOPATH
1
(注:这个不是
Go
安装目录。下面以笔者的工作目录为说明,请替换自己机器上的工作目录。)
在类似 Unix 环境大概这样设置: sh export GOPATH=/home/apple/mygo Windows 设置如下,新建一个环境变量名称叫做
GOPATH: sh GOPATH=c:\mygo GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分
号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下
以上 $GOPATH 目录约定有三个子目录:
src 存放源代码(比如:.go .c .h .s等)
pkg 编译后生成的文件(比如:.a)
bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中)
以后我所有的例子都是以mygo作为我的gopath目录
应用目录结构应用目录结构
建立包和目录:$GOPATH/src/mymath/sqrt.go(包名:"mymath")
以后自己新建应用或者一个代码包都是在src目录下新建一个文件夹,文件夹名称一般是代码包名称,当然也允许多级目录,例
如在src下面新建了目录$GOPATH/src/github.com/astaxie/beedb 那么这个包路径就是“github.com/astaxie/beedb”,包名称是最
后一个目录beedb
执行如下代码 sh cd $GOPATH/src mkdir mymath 新建文件sqrt.go,内容如下 ```go // $GOPATH/src/mymath/sqrt.go源码如下:
package mymath
func Sqrt(x float64) float64 {
z := 0.0
for i := 0; i < 1000; i++ {
z -= (z*z - x) / (2 * x)
}
return z
}
``` 这样我的应用包目录和代码已经新建完毕,注意:一般建议package的名称和目录名保持一致
编译应用编译应用
上面我们已经建立了自己的应用包,如何进行编译安装呢?有两种方式可以进行安装
1、只要进入对应的应用包目录,然后执行go install,就可以安装了
2、在任意的目录执行如下代码go install mymath
安装完之后,我们可以进入如下目录 sh cd $GOPATH/pkg/${GOOS}_${GOARCH} //可以看到如下文件 mymath.a 这个.a文件是应用
包,那么我们如何进行调用呢?
接下来我们新建一个应用程序来调用
新建应用包mathapp sh cd $GOPATH/src mkdir mathapp cd mathapp vim main.go // $GOPATH/src/mathapp/main.go源码:
```go package main
import (
"mymath"
"fmt"
)
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt(2))
}
如何编译程序呢?进入该应用目录,然后执行`go build`,那么在该目录下面会生成一个mathapp的可执行文件 sh ./mathapp 输出如下内容 sh
Hello, world. Sqrt(2) = 1.414213562373095 `` 如何安装该应用,进入该目录执行go install`,那么在$GOPATH/bin/下增加了一个可执行
文件mathapp,这样可以在命令行输入如下命令就可以执行
mathapp
也是输出如下内容
Hello, world. Sqrt(2) = 1.414213562373095
获取远程包获取远程包
go语言有一个获取远程包的工具就是go get,目前go get支持多数开源社区(例如:github、googlecode、bitbucket、
Launchpad)
go get github.com/astaxie/beedb
go get -u 参数可以自动更新包,而且当go get的时候会自动获取该包依赖的其他第三方包
通过这个命令可以获取相应的源码,对应的开源平台采用不同的源码控制工具,例如github采用git、googlecode采用hg,所以要
想获取这些源码,必须先安装相应的源码控制工具
通过上面获取的代码在我们本地的源码相应的代码结构如下
$GOPATH
src
|--github.com
|-astaxie
|-beedb
pkg
|--相应平台
|-github.com
|--astaxie
|beedb.a
剩余209页未读,继续阅读
www_7di_net
- 粉丝: 328
- 资源: 110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 《基于51单片机和DS18B20的温度检测和报警系统,可设置报警温度上下限,输出温度采用数码管显示 》+源代码+设计资料
- ESP8266WIFI系统工作原理图.schdoc
- C语言《基于STM32的测量温度与压力的数据处理设计 》+源代码+设计资料
- ApkTool,安卓逆向工具
- prompt技术资料AI资料.zip
- 基于NeRF方法实现校园内真实拍摄场景的三维重建和web端实时渲染源码.zip
- HCIA-Data Center Facility V2.0.zip
- 物联网场景下的协同通信技术.pptx
- 大语言模型的微调和推理baichuan7B, chatglm2-6B, Qwen-7B-chat源码.zip
- 环境光谱特征数据库系统的建设.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3