您好,欢迎访问三七文档
1GO环境配置欢迎来到Go的世界,让我们开始探索吧!Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。在本章中,我们将讲述Go的安装方法,以及如何配置项目信息。目录1.1Go安装Go的三种安装方式Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方便而熟悉的。Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好的工具,除非你知道怎么处理。Go源码安装在Go的源代码中,有些部分是用Plan9C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行sudoapt-getinstallgcclibc6-dev来安装编译工具。在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。Go使用Mercurial进行版本管理,首先你必须安装了Mercurial,然后才能下载。假设你已经安装好Mercurial,执行如下代码:假设已经位于Go的安装目录$GO_INSTALL_DIR下hgclone-urelease运行all.bash后出现ALLTESTSPASSED字样时才算安装成功。上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。然后设置几个环境变量,exportGOROOT=$HOME/goexportGOBIN=$GOROOT/binexportPATH=$PATH:$GOBIN看到如下图片即说明你已经安装成功图1.1源码安装之后执行Go命令的图如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。Go标准包安装Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go(Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:exportGOROOT=$HOME/goexportPATH=$PATH:$GOROOT/bin如何判断自己的操作系统是32位还是64位?我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。Windows系统用户请按Win+R运行cmd,输入systeminfo后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显示“x64-basedPC”,即为64位系统;若显示“X86-basedPC”,则为32位系统。Mac系统用户建议直接使用64位的,因为Go所支持的MacOSX版本已经不支持纯32位处理器了。Linux系统用户可通过在Terminal中执行命令uname-a来查看系统信息:64位系统显示一段描述x86_64x86_64x86_64GNU/Linux//有些机器显示如下,例如ubuntu10.04x86_64GNU/Linux32位系统显示一段描述i686i686i386GNU/LinuxMac安装访问下载地址,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包到安装目录下:tarzxvfgo1.0.3.linux-amd64.tar.gz-C$GO_INSTALL_DIR。设置PATH,exportPATH=$PATH:$GO_INSTALL_DIR/go/bin然后执行go图1.2Linux系统下安装成功之后执行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的安装目录。第三方工具安装GVMgvm是第三方开发的Go多版本管理工具,类似ruby里面的rvm工具。使用起来相当的方便,安装gvm使用如下命令:bash(curl-s)安装完成后我们就可以安装go了:gvminstallgo1.0.3gvmusego1.0.3执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。apt-getUbuntu是目前使用最多的Linux桌面系统,使用apt-get命令来管理软件包,我们可以通过下面的命令来安装Go:sudoadd-apt-repositoryppa:gophers/gosudoapt-getupdatesudoapt-getinstallgolang-stablehomebrewhomebrew是Mac系统下面目前使用最多的管理软件的工具,目前已支持Go,可以通过命令直接安装Go:brewinstallgo1.2GOPATH与工作空间GOPATH设置go命令依赖一个重要的环境变量:$GOPATH1(注:这个不是Go安装目录。下面以笔者的工作目录为说明,请替换自己机器上的工作目录。)在类似Unix环境大概这样设置:exportGOPATH=/home/apple/mygoWindows设置如下,新建一个环境变量名称叫做GOPATH:GOPATH=c:\mygoGOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将goget的内容放在第一个目录下以上$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执行如下代码cd$GOPATH/srcmkdirmymath新建文件sqrt.go,内容如下//$GOPATH/src/mymath/sqrt.go源码如下:packagemymathfuncSqrt(xfloat64)float64{z:=0.0fori:=0;i1000;i++{z-=(z*z-x)/(2*x)}returnz}这样我的应用包目录和代码已经新建完毕,注意:一般建议package的名称和目录名保持一致编译应用上面我们已经建立了自己的应用包,如何进行编译安装呢?有两种方式可以进行安装1、只要进入对应的应用包目录,然后执行goinstall,就可以安装了2、在任意的目录执行如下代码goinstallmymath安装完之后,我们可以进入如下目录cd$GOPATH/pkg/${GOOS}_${GOARCH}//可以看到如下文件mymath.a这个.a文件是应用包,那么我们如何进行调用呢?接下来我们新建一个应用程序来调用新建应用包mathappcd$GOPATH/srcmkdirmathappcdmathappvimmain.go//$GOPATH/src/mathapp/main.go源码:packagemainimport(mymathfmt)funcmain(){fmt.Printf(Hello,world.Sqrt(2)=%v\n,mymath.Sqrt(2))}如何编译程序呢?进入该应用目录,然后执行gobuild,那么在该目录下面会生成一个mathapp的可执行文件./mathapp输出如下内容Hello,world.Sqrt(2)=1.414213562373095如何安装该应用,进入该目录执行goinstall,那么在$GOPATH/bin/下增加了一个可执行文件mathapp,这样可以在命令行输入如下命令就可以执行mathapp也是输出如下内容Hello,world.Sqrt(2)=1.414213562373095获取远程包go语言有一个获取远程包的工具就是goget,目前goget支持多数开源社区(例如:github、googlecode、bitbucket、Launchpad)gogetgithub.com/astaxie/beedbgoget-u参数可以自动更新包,而且当goget的时候会自动获取该包依赖的其他第三方包通过这个命令可以获取相应的源码,对应的开源平台采用不同的源码控制工具,例如github采用git、googlecode采用hg,所以要想获取这些源码,必须先安装相应
本文标题:Go-web-编程
链接地址:https://www.777doc.com/doc-5448313 .html