Option Functions
फ़ंक्शन से कॉन्फ़िगर करें
Option Functions, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
फ़ंक्शनों से कॉन्फ़िगर करना
मूल विचार यह है: प्रत्येक वैकल्पिक सेटिंग को ऐसे फ़ंक्शन के रूप में दर्शाइए जो कॉन्फ़िगरेशन में बदलाव करता है। इन्हें “विकल्प फ़ंक्शन” कहा जाता है।
विकल्प प्रकार
Option को ऐसे फ़ंक्शन के रूप में परिभाषित कीजिए जो कॉन्फ़िगरेशन स्ट्रक्चर के पॉइंटर को लेता है।
package main
import "fmt"
type Config struct {
Port int
Timeout int
}
type Option func(*Config)
func main() {
var o Option
fmt.Println(o == nil)
}विकल्प लिखना
एक विकल्प ऐसा क्लोज़र लौटाता है जो एक फ़ील्ड सेट करता है। WithPort(9000) ऐसा फ़ंक्शन बनाता है जो Port = 9000 असाइन करता है।
package main
import "fmt"
type Config struct{ Port int }
type Option func(*Config)
func WithPort(p int) Option {
return func(c *Config) { c.Port = p }
}
func main() {
c := &Config{}
WithPort(9000)(c)
fmt.Println(c.Port)
}क्लोज़र मान को कैप्चर करते हैं
लौटाया गया फ़ंक्शन तर्क को क्लोज़र में कैप्चर कर लेता है। WithPort(9000) लागू किए जाने तक 9000 को याद रखता है।
कई विकल्प
प्रत्येक सेटिंग को अपना विकल्प फ़ंक्शन मिलता है। वे सभी Option प्रकार साझा करते हैं।
package main
import "fmt"
type Config struct {
Port int
Timeout int
}
type Option func(*Config)
func WithPort(p int) Option { return func(c *Config) { c.Port = p } }
func WithTimeout(t int) Option { return func(c *Config) { c.Timeout = t } }
func main() {
c := &Config{}
WithPort(80)(c)
WithTimeout(15)(c)
fmt.Printf("%+v\n", *c)
}बूलियन फ़्लैग वाले विकल्प
बिना पैरामीटर वाला विकल्प किसी फ़्लैग को चालू या बंद कर सकता है।
package main
import "fmt"
type Config struct{ TLS bool }
type Option func(*Config)
func WithTLS() Option { return func(c *Config) { c.TLS = true } }
func main() {
c := &Config{}
WithTLS()(c)
fmt.Println(c.TLS)
}विकल्पों की स्लाइस लागू करना
विकल्पों को एक स्लाइस में एकत्र कीजिए और लूप में प्रत्येक को लागू कीजिए — यही उस कन्स्ट्रक्टर का मुख्य आधार है जिसे आप आगे बनाएँगे।
package main
import "fmt"
type Config struct{ Port, Timeout int }
type Option func(*Config)
func WithPort(p int) Option { return func(c *Config) { c.Port = p } }
func WithTimeout(t int) Option { return func(c *Config) { c.Timeout = t } }
func main() {
c := &Config{}
opts := []Option{WithPort(8080), WithTimeout(30)}
for _, opt := range opts {
opt(c)
}
fmt.Printf("%+v\n", *c)
}क्रम महत्वपूर्ण है
विकल्प क्रम के अनुसार लागू होते हैं। यदि दो विकल्प एक ही फ़ील्ड सेट करते हैं, तो अंतिम विकल्प प्रभावी होता है — यह कभी उपयोगी होता है और कभी ऐसा जोखिम बन जाता है जिसे दस्तावेज़ित करना चाहिए।
नामकरण परंपरा
परंपरा के अनुसार विकल्प कन्स्ट्रक्टरों के नाम With... रखे जाते हैं (जैसे WithPort, WithTLS), ताकि कॉल वाली जगहें अंग्रेज़ी जैसी पढ़ी जा सकें।
विकल्पों में तर्क हो सकता है
विकल्प केवल एक फ़ंक्शन है, इसलिए वह केवल असाइन करने के बजाय मानों की जाँच, गणना या संयोजन भी कर सकता है।
यहाँ फ़ंक्शन स्ट्रक्चर से बेहतर क्यों हैं
- केवल बताए गए फ़ील्ड सेट कीजिए
- कॉल वाली जगह पर स्वयं-स्पष्ट नाम
- कॉल करने वालों को तोड़े बिना नए विकल्प जोड़िए
त्वरित जाँच
विकल्प फ़ंक्शन से जुड़े अपने ज्ञान का परीक्षण कीजिए।
पुनरावलोकन
आपने विकल्प फ़ंक्शन बनाना सीखा।
type Option func(*Config)परिभाषित कीजिएWithXकन्स्ट्रक्टर ऐसे क्लोज़र लौटाते हैं जो कॉन्फ़िगरेशन में बदलाव करते हैं- लूप में विकल्पों की स्लाइस लागू कीजिए
- क्रम महत्वपूर्ण है; अंतिम लेखन प्रभावी होता है
एआई शिक्षक के साथ Go सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “Option Functions” पाठ निःशुल्क है?
हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Option Functions” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Option Functions” में मैं क्या सीखूँगा?
फ़ंक्शन से कॉन्फ़िगर करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“Option Functions” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- अनेक Params की समस्या
- Option Functions
- लचीला API बनाना
- डिफ़ॉल्ट और सत्यापन