"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > `http.Request` तर्क को चलते समय सूचक बनने की आवश्यकता क्यों है?

`http.Request` तर्क को चलते समय सूचक बनने की आवश्यकता क्यों है?

2024-11-14 को प्रकाशित
ब्राउज़ करें:561

Why Does the `http.Request` Argument Need to Be a Pointer in Go?

HTTP अनुरोध तर्क को एक सूचक क्यों होना चाहिए?

गो में, 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