37 lines
No EOL
946 B
Go
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)
|
|
}
|
|
} |