golang作为Google的亲儿子,现在关注度也越来越高,据说Android以后也会用golang代替Java开发,因为谷歌被甲骨文告了,每年都赔款十几亿美金....
Go的优势特性在于并发性,提供了令人惊讶的并发基元,良好的语法,优秀的函数库和快速的编译器。即使是基础代码变得很大的时候,使用Go语言依然很轻松,因为它使构造简单的同时保证可靠,高效。
我们项目组的在线客服系统就是用Go语言开发的,在接触Go之后更觉得其创新之举确实很有魅力。
下面记录“够浪”的入门学习笔记,环境配置自己也是在网上找了很多资料,弄了很久才弄好,所以记录一下也算一个经验吧。
1、系统:Linux (Ubuntu、CentOS...)
golangs是谷歌的大牛们在Linux下开发的编译型语言,在Linux下进行开发是最适合的,别再Windows下搞,浪费时间,编译代码很容易出问题,我是踩过坑的
2、go语言环境配置:下载go源码安装包,再配置路径环境
3、开发工具(编辑器) :Sublime Text 2 或Sublime Text 3
4、版本管理:git
我是在CentOS6.5下配置的环境,以这为例,步骤如下:
a.go安装配置,依次在终端下输入如下命令即可
wget -c http://www.golangtc.com/static/go/go1.3.linux-386.tar.gz #下载32位Linux的够源码包
tar -zxvf go1.1.linux-386.tar.gz #下载文件后解压缩
cp -R go/ /usr/local/go #移动到指定文件路径
vi /etc/profile #配置环境变量
在文件末尾加入:
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export GOPATH=/root/gocode #该路径是放开发的工程项目的文件路径 ,不可与GOROOT一致,在该路径下建三个文件夹“src”、“pkg”、“bin”,自己开发的工程项目放在src下。
export PATH=$PATH:$GOBIN:$GOPATH
按“Esc”,再输入:qw #命令保存退出
source /etc/profile #使配置文件立刻生效
go env #查看环境变量,有结果输出证明配置成功
b.安装配置sublime Text 2
网上下载对应版本的安装包;
安装gosublime插件;
打开配置Preference>packages Seetting>go Sublime>setting User
输入设置如下:
"env": {
"PATH" : "/usr/local/go"
},
c.安装git
yum install git
d.运行go项目工程的shell基本命令
go get 【开源库】 #下载go语言开源库
go build *.go #在项目路径下编译所有go文件
go build -o [文件名] *go #编译所有go文件,生成指定的文件名的执行文件
./【文件名】 #运行编译后的执行文件
直接给链接参考
Go社区:http://studygolang.com/
Go入门语法指南:http://tour.studygolang.com/welcome/1
基础语法不多说,看看go的创新特色
Goroutines & Channels
写并发的代码已经很困难了,写并发访问网络的代码就更加困难了。问题在于传统的线程不能很好得伸缩,而且线程一旦运行起 来,就会很难去控制。而Go语言的goroutine解决了这个问题。本质上, goroutines是个轻量级的并发机制,通过使用一种称为channels管道来进行线程间交互。它们都非常易于使用。
<span style="font-size:18px;">go func(x,y) //即可异步调用方法 func
</span>
<span style="font-size:18px;">channel 是一种有类型的管道
var ch chan int = make(chan int) //创建管道
ch < - 1 //将1 送入管道ch
v := < - ch //从ch接收,并赋给v</span>
变量语法(对比java、golang)
:=
golang 之 slice
数组不能改变大小,slice (切片)提供了更加便利的方式来操作数组,有点类似java里面的ArrayList。
[]T 是一个元素类型为 T 的 slice。 p := []int{2, 3, 5, 7, 11, 13}
t
make
向slice添加修改删除元素 a = append(a, 0, 1, 2)