Go语言 教程

 

Go 语言简称 golang ,是 Google 开发的一种强类型、编译型、并发型,并具有垃圾回收功能的静态编程语言。它能让构造简单、可靠且高效的软件变得更容易。

Go 语言由 Robert Griesemer, Rob Pike, Ken Thompson 于2007年9月开始设计,基于 Inferno 操作系统开发,后来又陆续加入了 Ian Lance Taylor, Russ Cox等人,并最终于 2009 年 11月 开源。Go 语言在 2012 年 3 月发布了第一个稳定版本 Go 1.0。

Go 语言目前广泛用于微服务、云平台、区块链以及游戏服务器等众多领域。

 

1. Go 语言的特色

  • 1)原生支持并发编程
  • 2)内存垃圾自动回收
  • 3)跨平台编程
  • 4)二进制编译,运行效率高
  • 5)语法简洁,易学易懂

 

2. Go 语言的用途

Go 语言被设计成一门应用于 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言,常用于服务器编程、网络编程、分布式系统、内存数据库以及云平台等领域。

Go 语言提供了海量并行的支持,对于高性能分布式系统领域而言,无疑比大多数其它语言有着更高的开发效率。

Go语言成功案例:应用容器引擎 Docker、容器调度服务 Kubernetes、时序数据库 InfluxDB、区块链平台 Eth 和 Fabric、微服务、云平台以及游戏服务器等。

 

3. 第一个 Go 程序

接下来我们来编写第一个 Go 程序 helloworld.go,代码如下:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

执行 Go 语言代码使用 go run 命令。

执行以上代码输出:

$ go run hello.go 
Hello, World!

使用 go build 命令,生成二进制文件:

$ go build hello.go 
$ ls
hello  hello.go
$ ./hello 
Hello, World!

4. Go 语言的使用场景

Go 在 Web 系统、API 应用、游戏后端,以及各种服务器编程都有涉猎,Go 还适合分布式系统、网关类系统、数据库代理器、基础服务等的开发。

  • 高并发领域
    解决秒级高并发,可以说,只要有高并发高可用需求的服务端程序都可以用 Go 开发。象游戏公司利用 Go 的高并发和网络编程,用于 服务端开发,替代以前风行一时的 Erlang。
  • 大数据领域
    数据挖掘、数据分析、数据存储方面,Go 和 Python 也是非常优秀的组合。海量数据存储系统有很多,比如 InfuxDB、CockroachDB、TiDB。
  • 区块链技术
    区块链系统开发涉及到算力及应用,虽然使用 C++ 语言可以完美解决,但过于繁琐,而 Java、Python 等虽然能降低开发成本,但是性能又跟不上,所以很多企业在开发区块链产品的时候,就会选择开发成本低,运行性能高的Go语言作为首选语言。象以太坊 Eth、IBM fabric平台均采用 Go 语言开发。
  • 微服务领域
    在构建微服务方面,由于 Go 天然的网络优势和原生并发,可以快速开发、部署和测试微服务,对于微服务的开发似乎有着原生的支持。象今日头条等知名公司均在大规模的采用 Go 语言构建微服务。

  • Go语言 开发环境安装:搭建Go语言开发环境,首先要下载Go语言的开发工具包。Go语言提供了所有主流平台架构的安装包,包括Windows,Linux,MacOS,FreeBSD等。我们要根据自己机器的操作系统情况,选择合适的安装包,然后遵照安装过程中的提示,一路Next即可。