2015-09-14 14 views
6

निजी/अप्रयुक्त कार्यों का उपयोग नहीं किया जा सका। क्यों संकलक शिकायत नहीं करता है जैसे यह अप्रयुक्त चर के लिए करता है?गोलांग अप्रयुक्त कार्यों के संकलन की अनुमति क्यों देता है?

संपादित करें: प्रश्न अप्रयुक्त निजी प्रकार/इंटरफेस पर भी लागू होता है।

+5

क्योंकि उन्हें दुष्प्रभावों के बिना हटाया जा सकता है ('init' को छोड़कर, जो हमेशा चलता है)। वैरिएबल कम इसलिए है क्योंकि उनके तत्कालता के दुष्प्रभाव हो सकते हैं। इसके अलावा, पैकेज स्तर पर अप्रयुक्त चर की अनुमति है। – thwd

+0

मैंने सोचा कि वे कोड को साफ रखने के लिए भी करते हैं न केवल दुष्प्रभावों से बचने के लिए (यानी आवंटन) –

+2

अप्रयुक्त प्रकार (इंटरफेस, structs) भी एक त्रुटि नहीं हैं। मुझे लगता है कि एकमात्र असली जवाब यह है कि एक प्रोग्रामर अप्रयुक्त स्थानीय चर और आयात से बच सकता है, लेकिन अगर आप एक अप्रयुक्त सहायक समारोह या प्रकार को कभी संकलित नहीं कर सकते हैं तो कुछ भी बनाना मुश्किल होगा। – LinearZoetrope

उत्तर

2

मुझे विश्वास है कि यह गुंजाइश और डिफ़ॉल्ट इंटरफेस {} का संयोजन है।

यही कारण है कि आप पैकेज स्तर पर एक चर घोषित कर सकते हैं जो अप्रयुक्त है और कोड ठीक से निर्माण करेगा।

package main 
import (
    "fmt" 
    "time" 
) 

var (
    testVar = "sup" 
) 

func main() { 
    start := time.Now() 

    fmt.Println("This sure was a test") 

    //Mon Jan 2 15:04:05 -0700 MST 2006 
    fmt.Println("Finished!\nTimeElapsed:", time.Since(start)) 
} 

भी हालांकि चर testVar इस्तेमाल कभी नहीं किया है:

यह टुकड़ा पूरी तरह से वैध जाने कोड है।

यहां कई संबंधित प्रश्न हैं, और मुझे लगता है कि उनके सभी का एक ही सामान्य उत्तर है।

  • अप्रयुक्त चरों की अनुमति क्यों नहीं है?
  • अप्रयुक्त चर पैरामीटर क्यों नहीं हैं अप्रयुक्त चर पैरामीटर हैं?
  • अप्रयुक्त कार्यों/structs क्यों अनुमति दी जाती है? इसलिए वे सख्ती से अनुमति नहीं है -

...

सामान्य जवाब एक समारोह के दायरे में अप्रयुक्त चर हमेशा से रहे हैं कि या तो संकलक समय की बर्बादी है, या एक वैध त्रुटि है।

हालांकि, अप्रयुक्त फ़ंक्शन पैरामीटर, साथ ही निजी structs और फ़ंक्शंस, एक इंटरफ़ेस को पूरा कर सकते हैं। कम से कम वे सभी डिफ़ॉल्ट इंटरफ़ेस {} को संतुष्ट करते हैं। और इस तरह, वे सभी त्रुटियों की गारंटी नहीं देते हैं ..

गोलांग दर्शन के इस विशेष कोने के पीछे तर्क को रेखांकित करने वाला कोई भी आधिकारिक दस्तावेज प्रतीत नहीं होता है, लेकिन जैसा कि the answer to a similar question में बताया गया है बेहतर भाग्य जवाब ढूंढना और golang-nuts forum पर प्रश्न पूछना।

आशा है कि इससे मदद मिलती है!

संबंधित मुद्दे