π Edit page
β Add page
Go
A modern statically typed, compiled language
Topics
Pages
Content
Byline:Wikipedia excerpt:Go is an open source programming language that makes it easy to build simple, reliable, and efficient software
Go is a statically typed, compiled programming language designed at Google β¦ Go is syntactically similar to C, but with memory safety, garbage collection, structural typing, and CSP-style concurrency.
Key links
- π Homepage: https://golang.org/
- π Docs: https://golang.org/doc/
- π Wiki: https://github.com/golang/go/wiki
- π¨βπ» Repo:
- π¦ Packages registry: https://pkg.go.dev/
- π Wikipedia
- β Learn X in Y Minutes
- ποΈ DevHints cheatsheet
- π¨βπ Tutorials Point
- π Rosetta Code
Uncategorized Links
-
Go repo
- on Google Open Sources
-
Google's Go repos
- On Google Open Source
Documentation
-
go.dev
- Include getting started and package discovery on
pkg.go.dev
. Different togolang.org
main site.
- Include getting started and package discovery on
Tutorials
- Go in 100 seconds
-
Getting started
- On the Go docs
-
Tutorial
- A few beginner-friendly tutorials available on the Go docs
-
Documentation
- Go website docs overview with links to many pages on learning Go
-
Effective Go
- Tutorial on the official site. This covers examples, formatting guide
and how to do many things in the language such as errors, functions and concurrency.
- Tutorial on the official site. This covers examples, formatting guide
- Learning resources on Go Dev
-
Wiki list
- See the table of contents for list of tutorials
- Learn Go by Example
- Learn Go: Top 30 Go Tutorials for Programmers Of All Levels
- Golang Cookbook
-
Cross-compiling
- Golang Cookbook section of making binaries for Linux, macOS and Windows
- Understanding data types in Go
Blog posts
- Using Go modules
-
Lessons learned from programming in Go
- Prevent future concurrent processing headaches by learning how to address these common pitfalls.
- Asynchronous Programming with Go
-
Learn Golang by Solving Real World Problems
- Medium article - recommended on dev.to
-
Primitive data types in Golang
- Medium article - recommended on dev.to
-
Zero values and complex data types in Golang
- Medium article - recommended on dev.to
Online playgrounds
Releases
-
Release summary
- On Project page of Go site.
- Release details
Installation
Go Dev
Community
-
pkg.go.dev
- The Go package discovery site.
-
Projects at the Go Wiki
- A curated list of Go projects.
-
Help page
- Links to Slack, Discord, Wiki, etc.
The Go blog
- Homepage
-
Go fmt
- The builtin tool to format your code. Please use tabs for indentation. The
gofmt
command emits them by default.
- The builtin tool to format your code. Please use tabs for indentation. The
Recommended reading
- The golang-standards org on GitHub
-
Source code of the standard library
- Comprehensively documented, it demonstrates the best of readable and understandable Go,
Go style, and Go idioms.
- Comprehensively documented, it demonstrates the best of readable and understandable Go,
-
Packages
- Includes example use for the standard library - click on a function to see the soure code.
Also includes link to submodules and community packages
- Includes example use for the standard library - click on a function to see the soure code.
-
Language spec
- This is a reference manual for the Go programming language.
Practical coding
- Go track on Exercism
- Go Tour welcome page
- Learn Go with Tests
-
Go for Python programmers
- Warning this project hasnβt been maintained since around 2015. Iβve already gleaned things from it and added to my own Cheatsheet notes.
-
Gophercises
- FREE coding exercises for budding gophers
Project template repos
-
golang-templates/seed
- Go application GitHub repository template.
-
golang-standards/project-layout
- Standard Go Project Layout
-
MichaelCurrin/go-project-template
- Scaffolding for a Go app
Books
Lists of recommended packages
-
Best Golang Libraries and Packages
- Blog post
-
Awesome go
- A curated list of awesome Go frameworks, libraries and software
- Web scraping packages guide
Recommended packages
-
Colly
- For web scraping
-
GOCUI - Go Console User Interface
- Minimalist Go package aimed at creating Console User Interfaces.
-
Color
- For colored text
-
go-octokit
- Simple wrapper for the GitHub REST API
-
go-github (by Google)
- Client library for access GitHub REST API
-
githubv4
- Client library for accessing GitHub GraphQL V4 API - this was recommended in the go-github docs
-
GopherJS
- Compile Go code to JavaScript
Whatβs possible with Go
From go.dev:
- Cloud and Network Services
- CLI tools
- Web development
- DevOps and Site Reliability
Summary
- Statically compiled typed language.
- Outputs binary executables.
- Created in 2007 at Google by authors such as Ken Thompson who made C.
- Go has been described as C for the 21st century.
- It had speed as a compiled language, like C or Rust.
- It also improves on older languages with faster compile times.
Types
It is efficient in running and also the code - types can often be inferred so your code isnβt verbose.
Both are valid in Go:
var string foo = "abc"
foo := "abc"