小松的技术博客

六和敬

若今生迷局深陷,射影含沙。便许你来世袖手天下,一幕繁华。 你可愿转身落座,掌间朱砂,共我温酒煮茶。

小试一下Go语言

一、Go语言

编程的世界早已充斥着无数种语言,语言就其本身而言是无所谓好坏而言的,每门语言尤其擅长区域、有其语法特性与笔法,而已存在如此多的语言的时候,google毅然推出了新的语言go来表达对现存语言的不满,而go语言是一门完全变革的语言,与传统的面相对象的语言有非常大的不同,我首先觉得不是非常适应,但慢慢的了解下去,也发现了很多这门语言特立独行的特点。一门语言蕴含着一门哲学,也蕴含着开发者无数的思索与考量,学习重要的是静心,慢慢体味一门语言为我们带来的无数乐趣。

二、Go语言安装

个人决定采用centos作为学习与开发环境,这里也不想讨论其它环境的安装了,按照官方的文档走就行了。我也不是发烧友,或者还没到发烧的地步,所以直接用二进制文件按照了:

去官网 https://golang.org/dl 下载相关的包,我这里下载的是go1.4.linux-amd64.tar.gz,直接解压到/usr/local目录下,然后配置path:

vim /etc/profile

加上下述代码:

export GOROOT=/usr/local/go
export GOPATH=/var/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

当然这里多出了一个GOPATH,这又是什么呢?这是由于go应用程序有其规范的文件目录结构,有了标准就好办事了,比方说三方包文件的管理、编译后的程序全局调用就会方便很多,而GOPATH指定的地方就是你的工程目录,从这一点也可以看出GO语言的规则之严谨,规则之后办事也会方便很多很多,即使一个很小的hello world程序并不需要什么工程结构,但我们一开始就按照工程架构的思路去做,这会极大的方便后续的开发流程。

三、GO的工程目录结构

go语言在$GOPATH下约定了三个目录:

src----存放源代码
pkg----存放编译后生成的文件,也可用于存放第三方包文件
bin----编译后可执行文件

四、几个命令

go get ----远程获取包,保存于pkg下
go install ----编译源码,不包含main包的在pkg相关文件夹下生成.a的文件,包含main函数的则在bin目录下生成可执行文件
go build ----如果是main包,在当前目录下生成可执行文件;如果是普通包,不会产生任何文件
go run <.go文件>----编译并执行文件

五、第一个Go程序

第一个程序当然还是hello world了,但是要写得有气质,所以我们依旧要保持文档结构的完整性,并且加点动态变化的东西。

首先在src目录下建立文件夹helloTo,然后进入这个文件夹,建立helloTo.go文件,附上如下代码:

package helloTo
func HelloTo(person string) string{
    return "Hello " + person + "!"
}

注意这里函数名使用了大写形式,表明这个函数是public的,go语言对大小写的要求很严格。然后在任意目录执行:

go install helloTo

可以检测pkg的${GOOS}_${GOARCH}(相关平台)文件下生成了对应的helloTo.a的编译文件。

然后在src下建立文件夹main(文件夹名与里面的文件的包名统一),然后在里面建立文件main.go,这是我们的程序入口,里面写上如下代码:

package main
import "fmt"
import "helloTo"
func main(){
    var printString string = helloTo.HelloTo("world")
    fmt.Println(printString)
}

然后执行:

go install main

这样可以看到bin目录下生成了可执行文件main,可以在bin目录下执行./main,当然如果加入了环境变量的话,任意文件夹都可以执行main命令,如此就可以看到控制台打印的信息,第一个伴随着理解其目录结构的hello world程序就完成了。

←支付宝← →微信 →
comments powered by Disqus