简介
Go
编程语言是一个使得程序员更加有效率的开源项目。Go
是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。Go
编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。
优势
良好的性能
并发支持良好,并且可以很好的利用多核心
简单,容易上手使用,只要是会一点C语言的, 都可以现学, 2~3天可以贡献代码
开发效率和运行效率有目共睹。 接近
C
的运行效率 、接近Python
的开发效率尤其是跨平台编译本地代码,之前为了跨平台运行学的
node
.但是node
需要装运行环境,go
不用,编译完直接运行,而且体积也不太大
缺点
官方相关的文档不够全面
第三方包和相关的解决方案太少,离
java
还太远.不能忍的缺点是没有泛型,身为一个静态语言,没有泛型,只能用interface,好伤
项目案例
七牛云存储
产品网址:云存储首页
七牛云存储应用范围:整个产品(包括基础服务、Web端、统计平台、各类小工具等等)
QOR - 模块化的电商系统 (开源项目)
QOR官网: QOR: E-commerce & CMS SDK written in Go
github地址: qor/qor
应用范围: 整个产品
美团后台流量支撑程序
应用范围:支撑主站后台流量(排序,推荐,搜索等),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps,latency)等功能。
仙侠道
产品网址:仙侠道官网 - 心动游戏
应用范围: 游戏服务端(通讯、逻辑、数据存储)
京东消息推送云服务/京东分布式文件系统
网址: 京东云
应用范围:后台所有服务全部用go实现
说了这么多是不是很想入手啊?下面就先从HelloWorld
开始学起。
学习资料
环境的安装
进入官网选择安装的平台。有
Mac OSX
和Windows
等不同平台的安装包,本文以Mac OSX
为例.下载Go package 并安装
完成后检查下
verison
justinjingdeMacBook-Pro-2:Desktop justinjing$ go version
go version go1.6 darwin/amd64
justinjingdeMacBook-Pro-2:Desktop justinjing$
如果能看到version 说明Go Package 已经安装成功了,下面再看看Go
的IDE
选择。
Go语言IDE/编辑器选择
这篇文章介绍了市面上支持Go
语言的IDE
,可以作为参考。
LiteIDE
功能比较完整,从工程管理、代码提示、跳转、帮助到调试,甚至跨平台,一应俱全,没有什么特殊需求的话,这是最合适的IDE
。缺点是代码提示有点慢。下载地址如果对
SublimeText
情有独钟,GoSublime
也是不错的选择。除了没有调试功能,其他编辑功能都很好用,SublimeText提供了流畅的写代码体验。至于
Goclipse
,配置比较麻烦,功能也没有突出的地方,加上eclipse
的臃肿,整体体验并不够好。
下载解压完成后,界面如下:
下面我们就可以开始HelloWorld了。
// helloword
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
写完保存,编译运行:
go run helloword.go
结果:
更多语法学习:
参考文档