What is range in Go?
Go में range
एक keyword है जिसका उपयोग arrays, slices, maps, strings, और channels के elements पर iterate करने के लिए किया जाता है। range
loop आपको प्रत्येक element के साथ associated index और value को आसानी से access करने की सुविधा देता है।
Usage of range in Different Data Structures
1. range with Slices and Arrays
जब आप slices या arrays के साथ range
का उपयोग करते हैं, तो यह प्रत्येक element के index और value को return करता है।
Example: Iterating Over a Slice
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30, 40, 50}
for index, value := range numbers {
fmt.Printf("Index: %d, Value: %d\n", index, value)
}
}
Explanation:
range numbers:
यह slicenumbers
के प्रत्येक element पर iterate करता है।index, value := range numbers:
range
loop प्रत्येक iteration में index और value return करता है।- Output: यह slice के सभी elements के index और value को print करेगा।
Ignoring the Index or Value
अगर आपको केवल value चाहिए और index नहीं चाहिए, तो आप index को _
से ignore कर सकते हैं। Similarly, आप value को भी ignore कर सकते हैं।
Example: Ignoring Index
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30, 40, 50}
for _, value := range numbers {
fmt.Printf("Value: %d\n", value)
}
}
Explanation:
_, value := range numbers:
यह सिर्फ value को iterate करता है और index को ignore कर देता है।
Example: Ignoring Value
package main
import "fmt"
func main() {
numbers := []int{10, 20, 30, 40, 50}
for index := range numbers {
fmt.Printf("Index: %d\n", index)
}
}
Explanation:
index := range numbers:
यह सिर्फ index को iterate करता है और value को ignore कर देता है।
2. range with Maps
Maps में range
का उपयोग key-value pairs पर iterate करने के लिए किया जाता है।
Example: Iterating Over a Map
package main
import "fmt"
func main() {
fruits := map[string]string{"a": "Apple", "b": "Banana", "c": "Cherry"}
for key, value := range fruits {
fmt.Printf("Key: %s, Value: %s\n", key, value)
}
}
Explanation:
range fruits:
यह mapfruits
के प्रत्येक key-value pair पर iterate करता है।key, value := range fruits:
range
loop में हर बार key और value return होते हैं।- Output: यह map के सभी key-value pairs को print करेगा।
3. range with Strings
Strings में range
का उपयोग करके आप string के प्रत्येक character (rune) पर iterate कर सकते हैं। यह character के index और Unicode value (rune) को return करता है।
Example: Iterating Over a String
package main
import "fmt"
func main() {
word := "GoLang"
for index, runeValue := range word {
fmt.Printf("Index: %d, Rune: %c\n", index, runeValue)
}
}
Explanation:
range word:
यह stringword
के प्रत्येक character पर iterate करता है।index, runeValue := range word:
यह loop प्रत्येक character का index और उसकी Unicode value को return करता है।- Output: यह string के सभी characters और उनके index को print करेगा।
4. range with Channels
Channels के साथ range
का उपयोग channels से values को receive करने के लिए किया जाता है, जब तक कि channel close न हो जाए।
Example: Iterating Over a Channel
package main
import "fmt"
func main() {
ch := make(chan int, 3)
ch <- 1="" 2="" 3="" :="range" ch="" close="" code="" eceived:="" fmt.println="" for="" value="">->
Explanation:
range ch:
यह channelch
के प्रत्येक value पर iterate करता है।- जब तक channel close नहीं हो जाता,
range
loop channel से values को receive करता रहता है। - Output: यह channel के सभी values को print करेगा।
Summary
- Slices और Arrays:
range
के साथ आप slices और arrays के elements को iterate कर सकते हैं, और index-value pair को access कर सकते हैं। - Maps:
range
के साथ आप maps के key-value pairs पर iterate कर सकते हैं। - Strings:
range
के साथ आप strings के characters (runes) पर iterate कर सकते हैं। - Channels:
range
के साथ आप channels से values को receive कर सकते हैं, जब तक कि channel close न हो जाए। - Ignoring Index या Value: आप index या value में से किसी एक को ignore भी कर सकते हैं, अगर उसकी जरूरत नहीं है।
range
Go में iteration का एक powerful tool है, जो आपको विभिन्न data structures के साथ आसानी से काम करने की सुविधा देता है। अगर आपको range
के बारे में और जानकारी चाहिए या कोई specific सवाल है, तो बताइए!
No comments:
Post a Comment