命令行方式
Mac环境可以使用brew工具安装Go语言。(本打算用图形界面安装,但是官网的链接一直无法打开。)在命令行中运行:
brew install go
安装提示完成之后在命令行中输入“go”,可以显示出命令的具体信息。
如果出现问题可以尝试更新下:
brew update
第一个Go程序
打开编辑起编辑一个以.go为结尾的文件。文件内容是简单地让程序打印“Hello, world!”。
package main
import "fmt"
//my first go program
func main() {
fmt.Println("Hello, world!")
}
编辑完成之后,使用fmt工具对格式进行标准化
go fmt helloworld.go
之后运行
go run helloworld.go
在命令行中打印出“Hello,world!”
由于是编译型语言,run命令的执行经历了编译源文件、链接库、运行可执行文件的过程。
如果需要一个长久使用的程序,则可以使用build命令获取可执行文件。
- Go语言的标准库(包的形式)通过package xxx后跟import yyy导入。代码中fmt包里有的Println函数负责打印,这点跟C的stdio.h提供printf类似。
- 每个最终执行的程序都需要有一个main函数,以及package main(它代表一个独立可执行的程序)。
- 函数的定义使用func,有函数名和参数,和C一样使用大括号定义范围,Go语言中的返回值也可以是多个(python也允许)。
- 和C一样使用//来注释。
为什么要使用Go?
Go语言于2009年11月由Google的工程师发布,其目标是让程序猿们写出高效、可靠、健壮的代码。
Go是编译型语言和C的语言特点很像,将CSP(Communicating Sequential Process,即一种描述并发的形式语言,在该语言中程序是一组无共享状态进程的并行组合,采用信道完成通信和同步)实现,并且结合了提供了垃圾回收机制(GC)。
由于是编译型语言其执行效率就比python等解释型语言要高。和C/C++相比语法少了很多,也简单了不少(C++对数据类型的安全型要求非常高),非常好读。
Go提供的类线程的机制(goroutine,非常轻量级占少量内存)和它们相互之间的信道通信、同步机制,有利于验证和实现一些并发执行的程序,应用在IO、网络、分布式应用、图像处理中。(C++11和后续14等标准中也支持了很多并发编程的支持,但是没有Go用起来简单)
另外如果要学习MIT 6.824或者etcd等,Go语言是必备的基础。