...

文档

The Go programming language is an open source project to make programmers more productive.

Go 编程语言是一个开源项目,它使程序员更具生产力。

Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。

Installing Go

安装 Go

Getting Started

Instructions for downloading and installing the Go compilers, tools, and libraries.

起步

下载并安装 Go 编译器、工具与库的说明。

Learning Go

学习 Go 语言

A Tour of Go

An interactive introduction to Go in three sections. The first section covers basic syntax and data structures; the second discusses methods and interfaces; and the third introduces Go's concurrency primitives. Each section concludes with a few exercises so you can practice what you've learned. You can take the tour online or install it locally.

Go 语言之旅

Go 语言的交互式简介,它分为三节。第一节覆盖了基本语法及数据结构,第二节讨论了方法与接口, 第三节则简单介绍了 Go 的并发原语。每节末尾都有几个练习,你可以对自己的所学进行实践。 你可以 在线学习安装到本地

How to write Go code

Also available as a screencast, this doc explains how to use the go command to fetch, build, and install packages, commands, and run tests.

如何使用 Go 编程

本文档教你如何使用 go 命令来获取、构建并安装包、命令及运行测试, 这些内容也可在此视频中获得。

Effective Go

A document that gives tips for writing clear, idiomatic Go code. A must read for any new Go programmer. It augments the tour and the language specification, both of which should be read first.

实效 Go 编程

本文档是 Go 语言新手的必读物,它就如何编写清晰而地道的 Go 代码提供一些技巧。 在阅读本文档之前,你应当首先阅读 Go 语言之旅及 Go 编程语言规范,它是对二者的补充。

Frequently Asked Questions (FAQ)

Answers to common questions about Go.

常见问题解答(FAQ)

关于 Go 的常见问题解答。

The Go Wiki

A wiki maintained by the Go community.

Go 维基

由 Go 社区维护的维基。

More

See the Learn page at the Wiki for more Go learning resources.

更多

更多 Go 的学习资源见维基学习页面。

References

资源

Package Documentation

The documentation for the Go standard library.

包文档

Go 标准库的文档。

Command Documentation

The documentation for the Go tools.

命令文档

Go 工具的文档。

Language Specification

The official Go Language specification.

语言规范

旧译版 官方 Go 语言规范。

The Go Memory Model

A document that specifies the conditions under which reads of a variable in one goroutine can be guaranteed to observe values produced by writes to the same variable in a different goroutine.

Go 内存模型

此文档指定了在一个Go程中,写入一个变量所产生的值,能够保证被另一个Go程所读取的条件。

Release History

A summary of the changes between Go releases.

发行历史

Go 发行版之间更改的概述。

Articles

文章

The Go Blog

The official blog of the Go project, featuring news and in-depth articles by the Go team and guests.

Go 博客

Go 项目的官方博客,由 Go 团队与嘉宾撰写的特色新闻与深入性的文章。

代码漫步

Go程序的旅行指南。

语言

Packages

Tools

工具

More

See the Articles page at the Wiki for more Go articles.

更多

更多关于 Go 的文章见维基文章页面

Talks

演讲

A Video Tour of Go

Three things that make Go fast, fun, and productive: interfaces, reflection, and concurrency. Builds a toy web crawler to demonstrate these.

Go 视频教程

有三样东西使得 Go 快速、有趣而高效:接口、反射与并发。我们将通过构建一个玩具网络爬虫来展示它们。

Code that grows with grace

One of Go's key design goals is code adaptability; that it should be easy to take a simple design and build upon it in a clean and natural way. In this talk Andrew Gerrand describes a simple "chat roulette" server that matches pairs of incoming TCP connections, and then use Go's concurrency mechanisms, interfaces, and standard library to extend it with a web interface and other features. While the function of the program changes dramatically, Go's flexibility preserves the original design as it grows.

代码的优雅增长

Go 的关键设计目标之一就是代码的适应性,它应当易于得到简单的设计,并以干净而自然的方式构建。 在此演讲中,Andrew Gerrand 描述了一种简单的“轮流聊天”服务,它匹配一对 TCP 接入的连接, 并使用 Go 的并发机制、接口和标准库来为它扩展出 Web 界面和其它特性。当该程序的函数戏剧性地改变后, Go 的灵活性在它增长时保留了其原始的设计。

Go Concurrency Patterns

Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.

Go 的并发模式

并发是设计高性能网络服务的关键。Go 的并发原语(Go程与信道)提供了一个表达并发实行的简单而高效的手段。 在此演讲中,我们将看见如何用简单的 Go 代码优雅地解决棘手的并发问题。

Advanced Go Concurrency Patterns

This talk expands on the Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives.

Go 的高级并发模式

此演讲是对 Go 的并发模式的进一步扩充,它对 Go 的并发原语进行了更加深入的探讨。

More

See the Go Talks site and wiki page for more Go talks.

更多

更多关于 Go 的演讲见Go 演讲网站维基页面

Non-English Documentation

See the NonEnglish page at the Wiki for localized documentation.

非英语文档

本地化文档见维基非英语页面。