تجنب تكرار التعليمات البرمجية للوظائف ذات الحقول المشتركة في Golang
لمنع تكرار التعليمات البرمجية عند كتابة وظائف لبنيات متعددة ذات حقول متطابقة، ضع في اعتبارك النهج التالي:بدلاً من تحديد وظائف منفصلة لكل بنية، قم بإنشاء نوع مخصص للحقل المشترك، مثل سلسلة الإصدار. يمكن أن يعمل هذا النوع كمستقبل للوظيفة التي تريد تنفيذها.
type Version string
func (v Version) PrintVersion() {
fmt.Println("Version is", v)
}
في بنياتك، قم بتضمين النوع المخصص كحقل باستخدام التركيب:
type Game struct {
Name string
MultiplayerSupport bool
Genre string
Version
}
type ERP struct {
Name string
MRPSupport bool
SupportedDatabases []string
Version
}
الآن، يمكنك الوصول إلى حقل الإصدار وطباعته من كلا البنيتين باستخدام الطريقة المرفقة بالنوع المخصص:func main() {
g := Game{
"Fear Effect",
false,
"Action-Adventure",
"1.0.0",
}
g.PrintVersion()
// Version is 1.0.0
e := ERP{
"Logo",
true,
[]string{"ms-sql"},
"2.0.0",
}
e.PrintVersion()
// Version is 2.0.0
}
يسمح لك هذا الأسلوب بتجنب تكرار التعليمات البرمجية مع الحفاظ على القدرة على طباعة حقل الإصدار من بنيات مختلفة. من خلال تعريف الوظيفة كطريقة لنوع مخصص، فإنك تضمن استخدام نفس التنفيذ لجميع البنيات التي تقوم بتضمين هذا النوع. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3