गो में, http.Request प्रकार एक बड़ी संरचना है जिसमें HTTP अनुरोध के बारे में विभिन्न जानकारी होती है। HTTP अनुरोधों को कुशलतापूर्वक संभालने के लिए, गो बड़े डेटा संरचनाओं की प्रतिलिपि बनाने के ओवरहेड से बचने के लिए पॉइंटर्स का उपयोग करता है।
package main
import (
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello world"))
})
http.ListenAndServe(":8000", nil)
}
यदि आप *http.Request में तारांकन चिह्न (*) हटाते हैं, तो आपको एक त्रुटि का सामना करना पड़ेगा क्योंकि func शाब्दिक http.Request प्रकार के लिए एक सूचक की अपेक्षा करता है।
github.com/creating_web_app_go/main.go:8: cannot use func literal (type func(http.ResponseWriter, http.Request)) as type func(http.ResponseWriter, *http.Request) in argument to http.HandleFunc
पॉइंटर्स का उपयोग गो में ऑब्जेक्ट की प्रतियों के बजाय ऑब्जेक्ट के संदर्भ को पास करने के लिए किया जाता है। वस्तुएँ स्वयं। यह अधिक कुशल है, विशेषकर http.Request जैसी बड़ी संरचनाओं के लिए। इसके अलावा, http.Request में राज्य की जानकारी होती है, जैसे HTTP हेडर और अनुरोध निकाय, जो कॉपी किए जाने पर भ्रमित करने वाली होगी।
इसलिए, HTTP अनुरोधों के कुशल संचालन को सुनिश्चित करने के लिए http.Request तर्क एक सूचक होना चाहिए और इसमें मौजूद राज्य जानकारी की अखंडता को बनाए रखना।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3