Skip to main content

Golang

Introduction

The Go Programming Language Specification

Go’s declaration Syntax

Standard lib

documentation

Go Docs

godoc.org

Effective Go guide

Composition over inheritance

short but good segment

Go by Example: Interfaces

Slice

Map

Concurrent Slogon

Do not communicate by sharing memory; instead, share memory by communicating.

Although Go’s approach to concurrency originates in Hoare’s Communicating Sequential Processes (CSP) ,it can also be seen as a type-safe generalization of Unix pipes.

Concurrency

Channels

  • Buffered Channel
  • Unbuffered Channel

Goroutines

Goroutines run in the same address space, so access to shared memory must be synchronized​​. The sync package provides useful primitives, although you won’t need them much in Go as there are other primitives.

How are Go channels implemented?

Reference