"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا توجد أقواس بعد "func" في Go؟

لماذا توجد أقواس بعد "func" في Go؟

تم النشر بتاريخ 2024-12-22
تصفح:987

Why are there Brackets after `func` in Go?

فهم أهمية الأقواس بعد func في Go

كمبتدئ في عالم برمجة Go، قد تواجه حالات حيث يتم استخدام الأقواس مباشرة بعد الكلمة الأساسية func . قد يكون هذا محيرًا، خاصة إذا لم تكن على دراية ببناء جملة Go الفريد. دعونا نلقي الضوء على هذه الميزة التي تبدو غامضة.

ما وراء (الإصدار الخامس)؟

في Go، الأقواس التالية func ليست جزءًا من توقيع الوظيفة ولكنها تشير بدلاً من ذلك إلى طريقة. الطريقة هي دالة مرتبطة بنوع معين. يوضح مقتطف الكود الذي قدمته تعريف الطريقة المسماة MarshalJSON لنوع الإصدار.

تقسيمها:

  • (v Version) : يحدد جهاز الاستقبال ونوع جهاز الاستقبال. في هذه الحالة، v هو جهاز استقبال من النوع Version. هذا يعني أنه لا يمكن استدعاء الطريقة إلا على قيمة من النوع Version.
  • MarshalJSON(): هذا هو اسم الطريقة.
  • ( []بايت، خطأ): هذا هو نوع الإرجاع الخاص بالأسلوب. في هذه الحالة، تقوم بإرجاع مصفوفة بايت وقيمة خطأ.
فهم جهاز الاستقبال

جهاز الاستقبال مشابه للذات أو هذه الكلمة الأساسية في بايثون وجافا، على التوالي. إنه يمثل مثيل النوع الذي يتم استدعاء الطريقة عليه. في المثال الخاص بك، يشير v إلى مثيل النوع Version الذي يتم استدعاء طريقة MarshalJSON عليه.

مثال عملي

لتوضيح هذا المفهوم بشكل أكبر، ضع في اعتبارك الكود التالي:

اكتب بنية الشخص { سلسلة الاسم } وظيفة (ع شخص) SayHello() { fmt.Printf("مرحبًا! اسمي %s.\n"، p.name)
type Person struct {
    name string
}

func (p Person) SayHello() {
    fmt.Printf("Hello! My name is %s.\n", p.name)
}
في هذا المثال، يتم إرفاق أسلوب SayHello بنوع البنية الشخصية. هذا يعني أن أي مثيل من نوع الشخص يمكنه استدعاء طريقة SayHello.

الاستنتاج

تشير الأقواس بعد func في Go إلى تعريف الطريقة، حيث تحدد الأقواس اللاحقة جهاز الاستقبال ونوع جهاز الاستقبال . تتيح لك الطرق إضافة وظائف إلى أنواع محددة، مما يعزز نمطية التعليمات البرمجية وإمكانية إعادة الاستخدام.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3