the basics Flashcards
(14 cards)
for Loop basic
for i := 0; i < 5; i++ {
fmt.Println(i) // 0, 1, 2, 3, 4
}
for Loop while
n := 0
for n < 5 { // while-like
n++
}
for loop infinite
for {
break // exits immediately
}
range array/slice
nums := []int{10, 20, 30}
for i, v := range nums { // index, value
fmt.Println(i, v)
}
range map
m := map[string]int{“a”: 1, “b”: 2}
for k, v := range m { // key, value
fmt.Println(k, v)
}
range String (Runes):
for i, r := range “Go🔥” { // i=byte index, r=rune
fmt.Printf(“%d: %c\n”, i, r)
}
if Statement
if x > 0 {
fmt.Println(“Positive”)
} else if x < 0 {
fmt.Println(“Negative”)
} else {
fmt.Println(“Zero”)
}
if Statement short
if err := doSomething(); err != nil {
fmt.Println(“Error:”, err)
}
switch Statement
switch os := runtime.GOOS; os {
case “darwin”:
fmt.Println(“macOS”)
case “linux”:
fmt.Println(“Linux”)
default:
fmt.Printf(“%s\n”, os)
}
switch Statement no condition
switch {
case x > 0:
fmt.Println(“Positive”)
case x < 0:
fmt.Println(“Negative”)
}
returning Errors
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf(“cannot divide by zero”)
}
return a / b, nil
}
Checking Errors:
result, err := divide(10, 0)
if err != nil {
log.Fatal(err)
}
Panic (Crash Program):
panic(“something went terribly wrong”)
Recover (Deferred Handler):
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println(“Recovered:”, r)
}
}()
panic(“intentional panic”)
}