Aditya Sood 9ba0fd08de
Minor addition to if-else text on declarations (#450)
* Minor addition to if-else text on declarations

Extremely minor addition to if-else text on declarations preceding conditionals, by explicitly clarifying that variables declared are only available in branches succeeding the declaration, not all the branches in the if-else ladder (i.e. preceding branches will not have it in their scope)

This edit might be redundant since variables in Golang can only be used after declaration, but to a complete novice the original wording of "...any variables declared in this statement are available in *all* branches..." might be a little misleading and appear to say that the variable is in-scope for the preceding branches as well (as this seems to be a very Golang-specific semantic that other high-level languages like C/C++, Java, Scala, Kotlin etc don't support; and so it will be a brand new paradigm for developers coming from such languages).

Thanks!

* Increment: Include changes in source .go file for #450
2022-10-25 06:00:36 -07:00
2022-09-08 05:55:05 -07:00
2021-09-10 06:35:31 -07:00
2021-09-20 06:37:55 -07:00
2022-08-22 05:58:44 -07:00

Go by Example

Content and build toolchain for Go by Example, a site that teaches Go via annotated example programs.

Overview

The Go by Example site is built by extracting code and comments from source files in examples and rendering them via the templates into a static public directory. The programs implementing this build process are in tools, along with dependencies specified in the go.modfile.

The built public directory can be served by any static content system. The production site uses S3 and CloudFront, for example.

Building

test

To build the site you'll need Go installed. Run:

$ tools/build

To build continuously in a loop:

$ tools/build-loop

To see the site locally:

$ tools/serve

and open http://127.0.0.1:8000/ in your browser.

Publishing

To upload the site:

$ export AWS_ACCESS_KEY_ID=...
$ export AWS_SECRET_ACCESS_KEY=...
$ tools/upload

License

This work is copyright Mark McGranaghan and licensed under a Creative Commons Attribution 3.0 Unported License.

The Go Gopher is copyright Renée French and licensed under a Creative Commons Attribution 3.0 Unported License.

Translations

Contributor translations of the Go by Example site are available in:

Thanks

Thanks to Jeremy Ashkenas for Docco, which inspired this project.

FAQ

I found a problem with the examples; what do I do?

We're very happy to fix problem reports and accept contributions! Please submit an issue or send a Pull Request. See CONTRIBUTING.md for more details.

What version of Go is required to run these examples?

Given Go's strong backwards compatibility guarantees, we expect the vast majority of examples to work on the latest released version of Go as well as many older releases going back years.

That said, some examples show off new features added in the latest release; therefore, it's recommended to try running examples with the latest officially released Go version (see Go's release history for details).

I'm getting output in a different order from the example. Is the example wrong?

Some of the examples demonstrate concurrent code which has a non-deterministic execution order. It depends on how the Go runtime schedules its goroutines and may vary by operating system, CPU architecture, or even Go version.

Similarly, examples that iterate over maps may produce items in a different order from what you're getting on your machine. This is because the order of iteration over maps in Go is not specified and is not guaranteed to be the same from one iteration to the next.

It doesn't mean anything is wrong with the example. Typically the code in these examples will be insensitive to the actual order of the output; if the code is sensitive to the order - that's probably a bug - so feel free to report it.

Description
Go by Example
Readme
Languages
Go 59.8%
CSS 31.6%
Shell 8.6%