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 press `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.

When you click on [[javascript:highlightAndClick("#format")][Format]]
(shortcut: `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-ar.appspot.com/][Arabic — العربية]]
- [[https://go-tour-br.appspot.com/][Brazilian Portuguese — Português do Brasil]]
- [[https://go-tour-ca.appspot.com/][Catalan — Català]]
- [[https://tour.go-zh.org/][Simplified Chinese — 中文（简体）]]
- [[https://go-tour-zh-tw.appspot.com/][Traditional Chinese — 中文（繁體）]]
- [[https://go-tour-cz.appspot.com/][Czech — Česky]]
- [[https://go-tour-fr.appspot.com/][French — Français]]
- [[https://go-tour-de.appspot.com/][German — Deutsch]]
- [[https://go-tour-he.appspot.com/][Hebrew — עִבְרִית]]
- [[https://go-tour-id2.appspot.com/][Indonesian — Bahasa Indonesia]]
- [[https://go-tour-ita.appspot.com/][Italian — Italiano]]
- [[https://go-tour-jp.appspot.com/][Japanese — 日本語]]
- [[https://go-tour-kr.appspot.com/][Korean — 한국어]]
- [[https://go-tour-ro.appspot.com/][Romanian — Română]]
- [[https://go-tour-ru-ru.appspot.com/][Russian - Русский]]
- [[https://gotour-es.appspot.com/][Spanish — Español]]
- [[https://go-tour-th.appspot.com/][Thai - ภาษาไทย]]
- [[https://go-tour-turkish.appspot.com/][Turkish - Türkçe]]
- [[https://go-tour-ua.appspot.com/][Ukrainian — Українська]]
- [[https://go-tour-uz.appspot.com/][Uzbek — Ўзбекча]]

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

#appengine: * Go offline (optional)
#appengine:
#appengine: This tour is also available as a stand-alone program that you can use
#appengine: without access to the internet. It builds and runs the code samples on
#appengine: your own machine.
#appengine:
#appengine: To run the tour locally, you'll need to first
#appengine: [[https://golang.org/doc/install][install Go]] and then run:
#appengine:
#appengine:   go get golang.org/x/tour
#appengine:
#appengine: This will place a `tour` binary in your
#appengine: [[https://golang.org/doc/code.html#Workspaces][workspace]]'s `bin` directory.
#appengine: When you run the tour program, it will open a web browser displaying
#appengine: your local version of the tour.
#appengine:
#appengine: 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]].
