में करना चाहिए, मैं सोच रहा था कि मुझे नया सेवावेक्स बनाना चाहिए और इसे http.Server
पर पंजीकृत करना चाहिए या मुझे http.HandleFunc
और http.Handler
सीधे आमंत्रित करना चाहिए?क्या मुझे सीधे सेवमक्स या http का उपयोग गोलांग
मुझे लगता है कि एक सेवमक्स के साथ मार्ग बेहतर है क्योंकि http.HandleFunc
स्पष्ट रूप से HTTP पैकेज की वैश्विक स्थिति के साथ गड़बड़ है, जिसे गो में खराब अभ्यास माना जाता है। हालांकि, कई ट्यूटोरियल में, यहां तक कि आधिकारिक वाले, मैं अक्सर उपयोग किए जाने वाले http.HandleFunc
मार्ग देखता हूं।
यह मुझे आश्चर्यचकित करता है: होने पर http.HandleFunc
का उपयोग क्यों करना चाहिए? मुझे पता है कि सेर्वेमक्स के कुछ फायदे हैं (उदाहरण के लिए आप हर समय उपसर्ग को दोहराए बिना घोंसला कर सकते हैं) लेकिन मुझे आश्चर्य है कि मुझे कभी भी http.HandleFunc
मल्टीप्लेक्सर पर क्यों चुनना चाहिए, खासकर HandleFunc
ServeMux
आंतरिक रूप से उपयोग करता है।
संपादित करें: टिप्पणियों में वादा किया गया है, मैंने Golang-dev पर अतिरिक्त (और बेकार आईएमओ फ़ंक्शंस) को बहिष्कृत करने के लिए कहा है और उन्होंने कहा (ठीक है, व्यक्ति ने कहा नहीं)। Here is the link.
(हैं मैं यह भी कहना चाहता था कि यह एक अच्छा सवाल है, और भविष्य में दूसरों के लिए उपयोगी है, क्योंकि यह पहले आया है) – elithrar
एलिथ्रार: यही कारण है कि मैंने इसे यहां पूछा। मुझे Google पर कुछ भी नहीं मिला। इमो, 'http.HandleFunc' और' http.Handle' को बहिष्कृत किया जाना चाहिए, फिर। 'मक्स' और' सर्वर' का उपयोग केवल 2 और लाइनें जोड़ता है और अस्पष्टता हमेशा खराब होती है, खासकर यदि अधिक स्पष्ट तरीका "खराब तरीका" है। – Matt3o12
गो 1 संगतता वादा हटाने की अनुमति नहीं देता है, इसलिए हम "2.0" तक (उनके द्वारा लंबे समय तक बंद होने तक) उनके साथ 'अटक गए' हैं। – elithrar