Go开始使用Go


备注

Go是Algol和C传统的开源,编译,静态类型语言。它具有垃圾收集,有限结构类型,内存安全功能和易于使用的CSP风格并发编程等功能。

版本

最新的主要版本发布是下面以粗体显示 。完整的发布历史可以在这里找到。

发布日期
1.8.3 2017年5月24日
1.8.0 2017年2月16日
1.7.0 2016年8月15日
1.6.0 2016年2月17日
1.5.0 2015年8月19日
1.4.0 2014年12月4日
1.3.0 2014年6月18日
1.2.0 2013年12月1日
1.1.0 2013年5月13日
1.0.0 2012-03-28

设置环境

如果您的系统中没有预安装Go,您可以访问https://golang.org/dl/并选择您的平台下载并安装Go。

要设置一个基本的Go开发环境,只需要设置影响go 工具行为的许多环境变量中的一小部分(参见: 列出Go环境变量以获取完整列表)(通常在shell的~/.profile 文件,或类Unix操作系统上的等效文件)。

GOPATH

与系统PATH 环境变量一样,Go path是: ; 在Windows上)分隔的目录列表,其中Go将查找包。 go get 工具还会将包下载到此列表中的第一个目录。

GOPATH 是Go将设置工作空间所需的binpkgsrc 文件夹的地方:

  • src - 源文件的位置: .go.c.g.s
  • pkg - 编译了.a 文件
  • bin - 包含Go构建的可执行文件

从Go 1.8开始,如果未设置, GOPATH 环境变量将具有默认值 。在Unix / Linux上默认为$ HOME / go,在Windows上默认为%USERPROFILE%/ go。

有些工具假设GOPATH 将包含单个目录。

GOBIN

go installgo get 的bin目录将在构建main 包之后放置二进制文件。通常,这会设置在系统PATH 某个位置,以便可以轻松运行和发现已安装的二进制文件。

GOROOT

这是Go安装的位置。它用于查找标准库。由于Go将构建路径嵌入到工具链中,所以必须设置此变量是非常罕见的。如果安装目录与构建目录(或构建时设置的值)不同,则需要设置GOROOT

脱机访问文档

有关完整文档,请运行以下命令:

godoc -http=:<port-number>
 

对于Go之旅(强烈建议初学者使用该语言):

go tool tour
 

上面的两个命令将启动Web服务器,其文档类似于此处此处的在线文档。

要从命令行进行快速参考检查,例如fmt.Print:

godoc cmd/fmt Print
# or
go doc fmt Print
 

命令行也提供常规帮助:

go help [command]
 

FizzBu​​zz

另一个“Hello World”风格程序的例子是FizzBu​​zz 。这是FizzBu​​zz实现的一个示例。非常惯用在这里玩。

package main

// Simple fizzbuzz implementation

import "fmt"

func main() {
    for i := 1; i <= 100; i++ {
        s := ""       
        if i % 3 == 0 {
            s += "Fizz"
        }
        if i % 5 == 0 {
            s += "Buzz"
        }
        if s != "" {
            fmt.Println(s) 
        } else {
            fmt.Println(i) 
        }
    }
}
 

操场

你好,世界!

将以下代码放入文件名hello.go

package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}
 

操场

正确安装 Go 可以编译和运行此程序,如下所示:

go run hello.go
 

输出:

Hello, 世界
 

一旦您对代码感到满意,就可以通过运行以下代码将其编译为可执行文件:

go build hello.go
 

这将在当前目录中创建适合您的操作系统的可执行文件,然后可以使用以下命令运行该文件:

Linux,OSX和其他类Unix系统

./hello
 

视窗

hello.exe
 

注意 :中文字符很重要,因为它们表明Go字符串存储为只读字节片。

列出Go环境变量

可以通过go env [var ...] 命令查看影响go 工具的环境变量:

$ go env
GOARCH="amd64"
GOBIN="/home/yourname/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/yourname"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build059426571=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
 

默认情况下,它将列表打印为shell脚本;但是,如果给出一个或多个变量名作为参数,则会打印每个命名变量的值。

$go env GOOS GOPATH
linux
/home/yourname
 

在线运行

围棋游乐场

一个鲜为人知的围棋工具是The Go Playground 。如果一个人想要在没有下载的情况下试验Go,他们可以轻松地完成。 。 。

  1. 在他们的网络浏览器中访问Playground
  2. 输入他们的代码
  3. 点击“运行”

分享您的代码

Go Playground还有分享工具;如果用户按下“共享”按钮,将生成一个链接( 如此链接),可以发送给其他人进行测试和编辑。

在行动中

Go Playground在行动中