Range Loops
Visit every item in a slice, one by one.
1package main
2
3import "fmt"
4
5func main() {
6 fruits := []string{"apple", "banana", "cherry"}
7 for _, fruit := range fruits {
8 fmt.Println(fruit)
9 }
10}
$ go run main.go
apple
banana
cherry
Every line, explained
package main- Every Go file starts by saying which package it belongs to. package main means "this is a program you can run", and Go will look inside it for func main.
import "fmt"- import brings in a package from Go's standard library. "fmt" (short for format) is the one full of printing tools, like fmt.Println.
func main() {- func main() { ... } is where a Go program starts. When you run the program, Go finds func main inside package main and runs everything between its braces, top to bottom.
fruits := []string{"apple", "banana", "cherry"}- A slice is Go's list. []string means "a slice of strings", and the items go between curly braces. Every item must be the same type.
for _, fruit := range fruits {- for ... range visits each item of a slice. range offers TWO things each trip: the position and the item. We only want the item, so we put _ (the "blank identifier", Go's way of saying "ignore this") where the position would go.
fmt.Println(fruit)- fmt.Println(...) prints what is inside the brackets to the terminal, then moves to a new line (Println is short for "print line"). The capital P matters: in Go, the tools a package shares all start with a capital letter. Runs three times, once per item, and fruit is different each time.
}- This } closes the for loop.
}- This closing brace } ends func main.