Go में दो slices (स्लाइस) की लंबाई और तत्वों की समानता के लिए सही तरीके से तुलना कैसे करें?
सभी को नमस्कार! मैंने हाल ही में Go सीखना शुरू किया है और एक सरल लगने वाली समस्या का सामना किया। मुझे दो integer slices की तुलना करनी है ताकि जाँच सकूँ कि उनमें समान क्रम में समान तत्व हैं (अर्थात, वे "गहराई से बराबर" हैं)।
Python में मैं बस `if list1 == list2:` लिखता और सब काम करता। लेकिन Go में मैंने पाया कि slices के लिए `==` ऑपरेटर काम नहीं करता! कंपाइलर त्रुटि देता है: `slice can only be compared to nil`।
यहाँ मेरे कोड का उदाहरण है:
```go
package main
import "fmt"
func main() {
a := []int{1, 2, 3}
b := []int{1, 2, 3}
if a == b { // कंपाइलेशन त्रुटि!
fmt.Println("Slices बराबर हैं")
}
}
```
मैं समझता हूँ कि slice एक reference type है (बेस array पर पॉइंटर, लंबाई और क्षमता वाला डिस्क्रिप्टर)। लेकिन फिर दो slices की सामग्री की सही तुलना कैसे करें? क्या हर बार loop लिखना ज़रूरी है? या कोई built-in function है? क्या string में बदलकर या `reflect` के माध्यम से कोई trick है?
कृपया मदद करें।