go-by-example/range/range.go
2023-12-18 03:40:05 -05:00

37 lines
No EOL
946 B
Go

package main
import "fmt"
func main(){
//here we use range to sum the numbers in a slice
nums := []int{2,3,4}
sum := 0
for _,num := range nums {
sum += num
}
fmt.Println("sum:",sum)
//range on arrays and slices provides both the index and value
// at each entry. above we didn't need the index, so we ignored it with the blank identifier
// but if we want the index we can use it like bellow
for i, num := range nums {
if num == 3 {
fmt.Println("index:",i)
}
}
//range on map iterates over the key value pairs.
kvs := map[string]string{"a":"apple","b":"banana"}
for k,v := range kvs{
fmt.Printf("%s -> %s\n",k,v)
}
//range can also iterate over just the keys of a map
for k := range kvs{
fmt.Println("key:",k)
}
// range on strings iterates over Unicode code points.
// the first value is the starting byte index of the rune
//and the second is the rune itself.
for i,c := range "go"{
fmt.Println(i,c)
}
}