Range Keyword in Golang
In Go (Golang), the
range
keyword is used to iterate over elements of various data structures, including arrays, slices, strings, maps, and channels. It enables efficient and idiomatic iteration without needing explicit index manipulation or iteration variables.
When used with arrays, slices, or strings,
range
iterates over each element, returning the index and value of each iteration. This simplifies the process of iterating through collections and accessing individual elements.
For maps,
range
iterates over key-value pairs, providing both the key and value for each iteration. This allows convenient access to map entries without manually extracting keys or values.
When used with channels,
range
can be used to iterate over values received from the channel until the channel is closed, facilitating safe and efficient communication between goroutines.
Overall, the
range
keyword in Go promotes clean, concise, and readable code by abstracting away low-level details of iteration. It enhances the expressiveness and simplicity of Go programs by providing a unified and consistent approach to iterating over various data structures and communication channels. Understanding and effectively using
range
is essential for writing efficient and idiomatic Go code.
The
range keyword is mainly use for loops to iterate
over all the
elements of a map, slice, channel, or array.
package main
import "fmt"
var Prwa = []int{1, 3, 9, 27, 81, 243, 729, 2187}
func main() {
for i, x := range Prwa {
fmt.Printf("3**%d=%d\n", i, x)
}
}
Output :
PS C:\GO_Language\range> go run range.go
3**0=1
3**1=3
3**2=9
3**3=27
3**4=81
3**5=243
3**6=729
3**7=2187
- Initializing slices using Range.
package main
import "fmt"
func main() {
pow := make([]int, 10)
for i:= range pow {
pow[i] = i << uint(i)
}
for _, value:= range pow {
fmt.Printf("%d\n", value)
}
}
Output :
PS C:\GO_Language\range> go run range2.go
0
2
8
24
64
160
384
896
2048
4608
- Simple Map program
package main
import "fmt"
func main() {
var map_1 map[int]int
if map_1 == nil {
fmt.Println("True")
} else {
fmt.Println("False")
}
map_2 := map[int]string{
90: "Red",
91: "Yellow",
92: "Orange",
93: "Green",
94: "Pink",
95: "Blue",
96: " ",
}
fmt.Println("Map_2", map_2)
}
Output :
PS C:\GO_Language\range> go run range3.go
True
Map_2 map[90:Red 91:Yellow 92:Orange 93:Green 94:Pink 95:Blue 96: ]
Range Keyword in Golang