Avatar ·

Go में == और === के बीच अंतर

सभी को नमस्कार! मैं JavaScript के बाद Go सीख रहा हूँ और comparison operators को लेकर भ्रम में हूँ। JS में सख्त (===) और गैर-सख्त (==) तुलना होती है, जबकि Go में मुझे केवल == दिखता है। क्या मैं सही समझ रहा हूँ कि Go में === operator नहीं है? और अगर नहीं है, तो विभिन्न प्रकारों के लिए तुलना कैसे काम करती है?

मैंने यह कोड लिखने की कोशिश की:

package main

import "fmt"

func main() {
    var a int = 5
    var b float64 = 5.0
    fmt.Println(a == b) // संकलन त्रुटि: mismatched types int and float64
}

मुझे उम्मीद थी कि Go या तो प्रकारों को परिवर्तित करेगा (जैसे JS में गैर-सख्त तुलना), या त्रुटि देगा। मुझे संकलन त्रुटि मिली। यानी Go में int और float64 की सीधे तुलना बिल्कुल नहीं की जा सकती? क्या हमेशा स्पष्ट रूप से प्रकारों को परिवर्तित करना होगा? और structs या pointers की तुलना के बारे में क्या? क्या ऐसे मामले हैं जहाँ == गैर-सख्त तुलना की तरह व्यवहार करता है?

कृपया बताएं कि Go में मानों की सही तुलना कैसे करें।