यह गो प्रोग्राम संकलित नहीं होगा। यह त्रुटि फेंकता global_var declared and not used
संयुक्त घोषणा/असाइनमेंट ऑपरेटर के साथ वैश्विक परिवर्तनीय इनलाइन असाइनमेंट और एक अन्य अविकसित परिवर्तनीय खोपड़ी गुंजाइश?
package main
import "log"
var global_var int
func main() {
global_var, new_string := returnTwoVars()
log.Println("new_string: " + new_string)
}
func returnTwoVars() (int, string) {
return 1234, "woohoo"
}
func usesGlobalVar() int {
return global_var * 2
}
हालांकि, जब मैं मुख्य समारोह में new_string
घोषित करने और बस =
का उपयोग करके :=
ऑपरेटर का उपयोग की आवश्यकता को दूर, संकलक देखकर कि global_var
घोषित किया जाता है के साथ एक समस्या नहीं है वैश्विक स्तर पर और कार्यक्रम में कहीं और इस्तेमाल किया जा रहा है। मेरा अंतर्ज्ञान मुझे बताता है कि उसे पता होना चाहिए कि global_var
पहले ही घोषित किया गया है
"गोलांग छाया" के लिए खोजें। यदि आप किसी आंतरिक क्षेत्र में किसी बाहरी क्षेत्र से नाम का पुनर्विक्रय करते हैं, तो आपके पास एक नया नया चर है। अक्सर, यहां के रूप में, यह भ्रमित है। – twotwotwo
मुझे लगता है: = किसी भी वेरिएबल को घोषित करेगा जो स्थानीय दायरे में घोषित नहीं किया गया है। यह संदिग्ध लगता है लेकिन मुझे लगता है कि यह वही तरीका है जो चीजें हैं। – BlinkyTop