Go
शून्य मान
खोज…
व्याख्या
शून्य मान या शून्य इनिशियलाइज़ेशन को लागू करना सरल है। जावा जैसी भाषाओं से आने से यह जटिल लग सकता है कि कुछ मूल्य nil
हो सकते हैं जबकि अन्य नहीं हैं। शून्य मूल्य के सारांश में : द प्रोग्रामिंग प्रोग्रामिंग भाषा विशिष्टता :
पॉइंटर्स, फ़ंक्शंस, इंटरफेस, स्लाइस, चैनल, और मैप्स एकमात्र प्रकार हैं जो शून्य हो सकते हैं। बाकी को उनके संबंधित प्रकारों के आधार पर झूठे, शून्य, या खाली तारों के लिए आरंभिक रूप से तैयार किया जाता है।
यदि कोई कार्य जो कुछ स्थिति की जांच करता है, तो समस्याएं उत्पन्न हो सकती हैं:
func isAlive() bool {
//Not implemented yet
return false
}
कार्यान्वयन से पहले ही शून्य मान गलत होगा। इस फ़ंक्शन की वापसी पर निर्भर इकाई परीक्षण झूठी सकारात्मक / नकारात्मक दे सकता है।
एक विशिष्ट वर्कअराउंड भी एक त्रुटि लौटाता है, जो कि गो में मुहावरेदार है:
package main
import "fmt"
func isAlive() (bool, error) {
//Not implemented yet
return false, fmt.Errorf("Not implemented yet")
}
func main() {
_, err := isAlive()
if err != nil {
fmt.Printf("ERR: %s\n", err.Error())
}
}
एक संरचना और एक त्रुटि दोनों को वापस करते समय आपको वापसी के लिए एक उपयोगकर्ता संरचना की आवश्यकता होती है, जो बहुत सुरुचिपूर्ण नहीं है। दो प्रति-विकल्प हैं:
- इंटरफेस के साथ काम करें: एक इंटरफेस को वापस करके शून्य लौटें।
- संकेत के साथ काम करें: एक सूचक
nil
हो सकता है
उदाहरण के लिए, निम्न कोड एक पॉइंटर लौटाता है:
func(d *DB) GetUser(id uint64) (*User, error) {
//Some error ocurred
return nil, err
}