Welcome!
Learn how to use this tour: including how to navigate the different lessons and how to run code.

The Go Authors
https://golang.org

* Hello, 世界

Welcome to a tour of the [[https://golang.org/][Go programming language]].

The tour is divided into a list of modules that you can
access by clicking on
[[javascript:highlight(".logo")][A Tour of Go]] on the top left of the page.

You can also view the table of contents at any time by clicking on the [[javascript:highlightAndClick(".nav")][menu]] on the top right of the page.

Throughout the tour you will find a series of slides and exercises for you
to complete.

You can navigate through them using

- [[javascript:highlight(".prev-page")]["previous"]] or `PageUp` to go to the previous page,

- [[javascript:highlight(".next-page")]["next"]] or `PageDown` to go to the next page.

The tour is interactive. Click the
[[javascript:highlightAndClick("#run")][Run]] button now 
(or type `shift-enter`) to compile and run the program on
#appengine: a remote server.
your computer.
The result is displayed below the code.

These example programs demonstrate different aspects of Go. The programs in the tour are meant to be starting points for your own experimentation.

Edit the program and run it again.

Note that when you click on [[javascript:highlightAndClick("#format")][Format]] or `ctrl-enter`
the text in the editor is formatted using the
[[https://golang.org/cmd/gofmt/][gofmt]] tool. You can switch syntax highlighting on and off
by clicking on the [[javascript:highlightAndClick(".syntax-checkbox")][syntax]] button.

When you're ready to move on, click the [[javascript:highlightAndClick(".next-page")][right arrow]] below or type the `PageDown` key.

.play welcome/hello.go

* Go local

The tour is available in other languages:

- [[https://go-tour-br.appspot.com/][Brazilian Portuguese — Português do Brasil]]
- [[https://go-tour-ca.appspot.com/][Catalan — Català]]
- [[https://go-tour-de.appspot.com/][German — Deutsch]]
- [[https://go-tour-es.appspot.com/][Spanish — Español]]
- [[https://go-tour-fr.appspot.com/][French — Français]]
- [[https://go-tour-id2.appspot.com/][Indonesian — Bahasa Indonesia]]
- [[https://go-tour-ita.appspot.com/][Italian — Italiano]]
- [[https://go-tour-he.appspot.com/][Hebrew — עִבְרִית]]
- [[https://go-tour-jp.appspot.com/][Japanese — 日本語]]
- [[https://go-tour-kr.appspot.com/][Korean — 한국어]]
- [[https://go-tour-ro.appspot.com/][Romanian — Română]]
- [[https://tour.go-zh.org/][Simplified Chinese — 中文（简体）]]
- [[https://go-tour-zh-tw.appspot.com/][Traditional Chinese — 中文（繁體）]]
- [[https://go-tour-ua.appspot.com/][Ukrainian — Українська]]
- [[https://go-tour-uz.appspot.com/][Uzbek — Ўзбекча]]
- [[https://go-tour-turkish.appspot.com/][Turkish - Türkçe]]
- [[https://go-tour-ru-ru.appspot.com/][Russian - Русский]]
- [[https://go-tour-th.appspot.com/][Thai - ภาษาไทย]]

Click the [[javascript:highlightAndClick(".next-page")]["next"]] button or type `PageDown` to continue.

#appengine: * Go offline
#appengine: 
#appengine: This tour is also available as a stand-alone program that you can use
#appengine: without access to the internet.
#appengine: 
#appengine: The stand-alone tour is faster, as it builds and runs the code samples
#appengine: on your own machine.
#appengine: 
#appengine: To run the tour locally first
#appengine: [[https://golang.org/dl/][download and install Go]]
#appengine: then start the tour from the command line:
#appengine: 
#appengine: 	go tool tour
#appengine: 
#appengine: Or, you can install and run this tour manually if you have any trouble
#appengine: running the above command:
#appengine: 
#appengine:   go get golang.org/x/tour/gotour
#appengine:   gotour
#appengine: 
#appengine: The tour program will open a web browser displaying
#appengine: your local version of the tour.
#appengine: 
#appengine: Or, of course, you can continue to take the tour through this web site.

#appengine: * The Go Playground
#appengine: 
#appengine: This tour is built atop the [[https://play.golang.org/][Go Playground]], a
#appengine: web service that runs on [[https://golang.org/][golang.org]]'s servers.
#appengine: 
#appengine: The service receives a Go program, compiles, links, and runs the program inside
#appengine: a sandbox, then returns the output.
#appengine: 
#appengine: There are limitations to the programs that can be run in the playground: 
#appengine: 
#appengine: - In the playground the time begins at 2009-11-10 23:00:00 UTC (determining the significance of this date is an exercise for the reader). This makes it easier to cache programs by giving them deterministic output.
#appengine: 
#appengine: - There are also limits on execution time and on CPU and memory usage, and the program cannot access external network hosts. 
#appengine: 
#appengine: The playground uses the latest stable release of Go.
#appengine: 
#appengine: Read "[[https://blog.golang.org/playground][Inside the Go Playground]]" to learn more.
#appengine: 
#appengine: .play welcome/sandbox.go

* Congratulations

You've finished the first module of the tour!

Now click on [[javascript:highlightAndClick(".logo")][A Tour of Go]] to find out what else
you can learn about Go, or go directly to the [[javascript:click('.next-page')][next lesson]].
