1.4 KiB
1.4 KiB
learning
stuff we learned along the way
2021-12-28
Stuff i learned about go
-
:=short assignment, infers type:x := 4. vs "long" assignment:var x int; x = 4 -
expressive ifs: declare, assign, evaluate
if x := isBar(); x > 10 { println("big number") } else { println("it's kind of small") } -
deferwrapup (e.g.conn.Close()) -
data structures are array (fixed), slice (variable), and channel
-
mulitiple returns. common convention:
foo, err := bar() if err != nil { return err } -
pointers 😬
-
use
maketo make arrays, slices, channels -
foris the only loop. -
structs and interfaces. here's a pair type:
type pair struct { x, y int }and here's a toString interface:
type Stringer interface { toString() string }and here's adding a method to a struct to implement the interface:
func(p pair) toString() string { return fmt.Sprintf("(%d, %d)", p.x, p.y) }and here's using the compiler to check the interface:
var p Stringer = pair{3, 4}
resources