62 lines
		
	
	
		
			978 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			978 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Range
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## Range
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To iterate over a collection in Go, we can use the range.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Range differs from for-loops as the item in a collection is not accessed by an index. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If you want to access a specifc element in a collection, a for-loop is probably the better options. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Here is an example:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								package main
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "fmt"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func main() {
							 | 
						||
| 
								 | 
							
								  fruits := []string{"apple", "orange", "pear"}
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  for _, fruit := range fruits {
							 | 
						||
| 
								 | 
							
								    fmt.Println(fruit)
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Will output:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								````
							 | 
						||
| 
								 | 
							
								apple
							 | 
						||
| 
								 | 
							
								orange
							 | 
						||
| 
								 | 
							
								pear
							 | 
						||
| 
								 | 
							
								````
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								You might have noticed the blank identifer that was used. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The blank identifer (or the first variable returned from range) is the index of the item. 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This is best suited when ranging over a map, so you can get the key and value:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								package main
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "fmt"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func main() {
							 | 
						||
| 
								 | 
							
								    kvs := map[string]string{"a": "apple", "b": "banana"}
							 | 
						||
| 
								 | 
							
								    for k, v := range kvs {
							 | 
						||
| 
								 | 
							
								        fmt.Printf("%s -> %s\n", k, v)
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```go
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Outputs:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								````
							 | 
						||
| 
								 | 
							
								a -> apple
							 | 
						||
| 
								 | 
							
								b -> banana
							 | 
						||
| 
								 | 
							
								````
							 |