Golang Cheat Sheet by Golang Dojo
Golang Cheat Sheet by Golang Dojo
AN
DO
GOL
JO
BUILT-IN TYPES SWITCH
bool, string, weapon := "Ninja Star"
switch weapon {
Cheat Sheet
int, int8, int16, int32, int64,
[ every golang ninja's secret weapon ]
uint, uint8, uint16, uint32, uint64, uintptr, case "Ninja Star":
VARIABLES
powerLevel := 9001
switch {
ARRAYS
// an array is a numbered sequence
evilNinjas[0] = "Johnny"
const opLevel = 3e20
fmt.Println(evilNinjas)
// a numeric constant has no type
fmt.Println(evilNinjas[0])
// until it's given one
fmt.Println(len(evilNinjas))
fmt.Printf("%T\n", opLevel)
fmt.Println(moreEvilNinjas)
LOOPS
var missionRewards [2][3]int
isSkilled := true
for i := 0; i < 2; i++ {
for isSkilled {
for j := 0; j < 3; j++ {
fmt.Println("Ready for mission!")
missionRewards[i][j] = i + j
isSkilled = false
}
}
}
SLICES
fmt.Println(level)
fmt.Println("Leveling up!")
} fmt.Println(len(evilNinjas))
G
AN
DO
MAPS STRUCTS
GOL
JO
// to create an empty map, use the built-in make type ninja struct {
Cheat Sheet
ninjaLevels := make(map[string]int) name string
fmt.Println(ninjaLevels)
delete(ninjaLevels, "Johnny")
// the optional second return value when getting // omitted fields will be zero-valued
fmt.Println(ok) fmt.Println(tommy.level)
fmt.Println(moreNinjaLevels)
INTERFACE
type ninjaWeapon interface{
RANGE attack()
}
evilNinjas:= []string{"Tommy", "Johnny", "Andy"}
}
func(n ninjaStar) attack() {
POINTERS
fmt.Println("Throwing Ninja Sword")
} weapons := []ninjaWeapon{
ninjaStar{},
tommy := ninja{"Tommy"} }
} }
G
AN
DO
GOL
JO
Cheat Sheet
FUNCTIONS [ every golang ninja's secret weapon ]
if level > 10 {
func main() {
return level, true
go attack("Tommy")
}
time.Sleep(time.Second)
return level, false
}
}
// variadic functions
CHANNELS
func attack(evilNinjas ...string) {
} time.Sleep(time.Second)
func main() { }
go attack(evilNinja, smokeSignal)
// buffered channels
// closures close(moreSmokeSignal)
attackToo(evilNinjas...) fmt.Println(message)
func() { }
}()
FOLLOW US
weekly golang tutorial for beginners
www.golangdojo.com
Golang Dojo