2015-04-16 8 views
5

सी में पृष्ठभूमि के बिना और गो में केवल "शुरुआती" अनुभव के बिना मैं काम करने की कोशिश कर रहा हूं कि main.go वास्तव में आवश्यक है या सिर्फ एक सम्मेलन है।क्या गो प्रोजेक्ट में main.go आवश्यक है?

मैं एक साधारण वेब एपीआई बनाना चाहता हूं लेकिन क्या कोई इसे मेरे लिए स्पष्ट कर सकता है?

उत्तर

13

main.go फ़ाइल के रूप में आवश्यक नहीं है।

हालांकि, main पैकेज func main() के साथ निष्पादन योग्य के लिए आवश्यक है।

आपकी फ़ाइल नाम जिसे आप चाहते हैं उसे बुलाया जा सकता है।

उदा

myawesomeapp.go

package main 

func main() { 
    fmt.Println("Hello World") 
} 

रनिंग go run myawesomeapp.go अपेक्षा के अनुरूप काम करेंगे।

4

किसी वेब सर्वर (निष्पादन योग्य) के लिए आपको func main() के साथ रखने की आवश्यकता है, लेकिन इसे main.go कहा जाने की आवश्यकता नहीं है - फ़ाइल का नाम कुछ भी हो सकता है जिसे आप चाहते हैं। language spec से:

कार्यक्रम निष्पादन

एक पूरा कार्यक्रम एक एकल, आयात न पैकेज सभी संकुल यह आयात करता है, संक्रामक के साथ मुख्य पैकेज बुलाया जोड़ने के द्वारा बनाई गई है। मुख्य पैकेज में पैकेज का नाम मुख्य होना चाहिए और एक फ़ंक्शन मुख्य घोषित करें जिसमें कोई तर्क नहीं होता है और कोई मूल्य नहीं देता है।

func main() { … } 

कार्यक्रम निष्पादन मुख्य पैकेज आरंभ और फिर समारोह मुख्य लागू द्वारा शुरू होता है। जब वह फ़ंक्शन आमंत्रण रिटर्न, प्रोग्राम निकलता है। यह अन्य (गैर-मुख्य) goroutines के लिए पूर्ण करने की प्रतीक्षा नहीं करता है।

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