جدول المحتويات[يخفي][يعرض]
- 1. وصف جولانج.
- 2. ما هي مزايا Go التي تتفوق بها على اللغات الأخرى؟
- 3. في برمجة Golang ، ما هو fmt؟
- 4. ما هي Go Interfaces بالضبط؟
- 5. ما هي بالضبط السلسلة الحرفية؟
- 6. كيف يتم تكوين بيئات العمل والمعلمات في Golang؟
- 7. وصف حزم جولانج؟
- 8. ما أنواع البيانات التي يدعمها Golang؟
- 9. ماذا تقصد بالإعلان عن النوع الثابت لمتغير في Golang؟
- 10. ما هو إعلان المتغير الديناميكي في Golang؟
- 11. كيف يمكنني استخدام الحزم المخصصة في لغة برمجة GO؟
- 12. ما هو الجوروتين بالضبط؟ كيف يمكنك وضع حد لذلك؟
- 13. وصف رون.
- 14. ما هو مصطلح Go لتمثيل التعدادات؟
- 15. كيف يتم التحقق من نوع المتغير في وقت التشغيل؟
- 16. وصف قنوات Go.
- 17. شرح طرق جولانج.
- 18. ما هو بالضبط سباق البيانات؟
- 19. ما هو بالضبط جمع القمامة Go؟
- 20. وصف مراحل الاختبار باستخدام Golang.
- 21. ما هي الشرائح بالضبط في Go؟
- 22. ما هي ذاكرة الكومة بالضبط؟
- 23. ما هي بالضبط وظيفة إغلاق؟
- 24. ماذا يعني تصريح Goo الخاص بـ Golang؟
- 25. في Golang ، ما هي Lvalue و Rvalue؟
- 26. في Go ، ما هي بنيات التكرار؟
- 27. ما هي أنماط التصميم بالضبط؟
- 28. ما هي أفضل حزمة Golang لعمليات الملفات البسيطة؟ ما حزم Golang الإضافية المستخدمة لمعالجة الملفات؟
- 29. قدم شرحاً عن الهندسة المعمارية الشيئية لـ Golang.
- 30. ما أنواع التحويل التي يدعمها Golang؟
- 31. وصف الغرض من تأكيد النوع وتشغيله.
- 32. ما هو بالضبط نوع الهيكل؟
- 33. شرح مصفوفة دعم قيمة شريحة.
- 34. هل من الضروري وجود متغيري GOPATH و GOROOT ، وإذا كان الأمر كذلك ، فلماذا؟
- 35. هل يتيح Golang الميراث؟
- 36. في Golang ، كيف يظهر CGo؟
- 37. ما هو نوع المؤشر في Golang؟
- وفي الختام
لغة برمجة Go ، والمعروفة غالبًا باسم Golang، هي لغة برمجة مفتوحة المصدر يمكن مقارنتها بـ C ولكنها مصممة للترجمة السريعة والتزامن السلس وراحة المطورين.
تم تطوير هذه اللغة واستخدامها من قبل Google ، لكنها اكتسبت قوة جذب في الشركات الأخرى في السنوات الأخيرة مع تزايد الطلب على البرمجة المتزامنة المتصلة بالشبكات.
يجعل Golang التطوير أسهل للمطورين من خلال تقديم تجميع مثالي لتطوير سريع لتطبيقات البرامج ، وتزامن أكثر سلاسة ، وكفاءة وقت تشغيل محسّنة ، وعدد أقل من العيوب.
سرعان ما أصبحت Golang لغة برمجة شائعة للشركات ، مع العديد من خيارات التوظيف. العديد من الشركات العملاقة في مجال تكنولوجيا المعلومات ، مثل Google و Uber و Apple ، تعشق Golang لوقت تطويرها الأقصر ، وسهولة التعلم ، ووقت التشغيل المحسن ، وجمع القمامة ، وغيرها من المزايا.
مع استخدام المزيد من الشركات لـ Golang ، تزداد الحاجة إلى مبرمجي Golang. الخط السفلي؟ سيوفر تعلم Golang العديد من فرص العمل.
إذا كنت ترغب في العمل كمطور لشركة Golang ، فيجب عليك الاستعداد بشكل مناسب لمقابلتك. لهذا السبب قمنا بتجميع هذه المجموعة الشاملة من أسئلة مقابلة Golang.
في هذا المنشور ، سنقدم أسئلة مقابلة Golang الأساسية إلى المتقدمة ، حتى تتمكن من اجتياز المقابلة بسهولة.
1. وصف جولانج.
Go هو هدف عام رفيع المستوى لغة برمجة يدعم جمع البيانات المهملة والبرمجة المتزامنة ويتم كتابته بإحكام شديد وثابت. يتم إنشاء تطبيقات Go من خلال استخدام الحزم ، التي توفر إدارة التبعية الفعالة.
بالإضافة إلى ذلك ، فإنه يستفيد من نهج ارتباط الترجمة لإنشاء ثنائيات قابلة للتنفيذ من التعليمات البرمجية المصدر. Go هي لغة مباشرة ذات هياكل نحوية جميلة وواضحة.
يأتي مع مجموعة من المكتبات القياسية القوية التي يمكن للمطورين استخدامها لحل المشكلات دون الحاجة إلى حزم أخرى.
2. ما هي مزايا Go التي تتفوق بها على اللغات الأخرى؟
- تم تطوير كود Go مع مراعاة التطبيق العملي ، على عكس اللغات الأخرى التي بدأت كتجارب فكرية. يتم إجراء كل خيار في بناء الجملة والميزة مع مراعاة راحة المبرمج.
- نظرًا لأن جمع البيانات المهملة يعمل بشكل متزامن مع التطبيق ، فهو أكثر فاعلية من Java أو Python.
- يتم إعطاء الأولوية لقابلية التوسع والتزامن في Golang.
- يُعتبر Golang عادةً أكثر قابلية للفهم من اللغات الأخرى نظرًا لأنه يحتوي على بنية رمز واحدة موحدة.
3. في برمجة Golang ، ما هو fmt؟
يُشار إلى حزمة التنسيق بالرمز fmt. يمكن للمستخدمين الاستفادة من هذه الوظيفة لتنسيق النص الأساسي أو القيم أو أي شيء آخر وطباعته.
كما يسمح للمستخدمين بتلقي مدخلات طرفية ، والكتابة إلى ملف مع كاتب ، وحتى إنشاء رسائل خطأ خيالية حسب الطلب. هذه الحزمة هي كل شيء عن تنسيق المدخلات والمخرجات.
4. ما هي Go Interfaces بالضبط؟
تختلف الواجهات في Go عن تلك الموجودة في اللغات الأخرى. تعد Go Interfaces نوعًا خاصًا يتم استخدامه للتعبير عن مجموعة من توقيعات طريقة واحدة أو أكثر.
يتم تشكيل الواجهة باستخدام المصطلح "النوع" ، متبوعًا بالاسم وواجهة الكلمات الرئيسية. يمكن تعريف الواجهات على النحو التالي:
- مجموعة من الأساليب
- النوع
5. ما هي بالضبط السلسلة الحرفية؟
السلسلة الحرفية هي عبارة عن ثابت سلسلة يتم إنتاجه من خلال تسلسل الأحرف. القيم الحرفية للسلسلة الأولية والمترجمة هما نوعان من حرفية السلسلة. يتم تضمين القيم الحرفية للسلسلة الأولية بواسطة backticks (foo) وتحتوي على أحرف UTF-8 غير مفسرة.
الجمل الحرفية المفسرة هي سلاسل مكتوبة ضمن علامات اقتباس مزدوجة وتتضمن أي حرف باستثناء السطر الجديد وعلامات الاقتباس المزدوجة غير المكتملة.
6. كيف يتم تكوين بيئات العمل والمعلمات في Golang؟
يمكن تكوين بيئات العمل والإعدادات باستخدام JSON ، والذي يستخدم على نطاق واسع هذه الأيام. حقيقة أن JSON مدرجة في المكتبة القياسية هي الميزة الرئيسية لها.
توفر المكتبة القياسية طرق الكتابة للمقصود هيكل البيانات، مما يجعلها سهلة القراءة. تعد حزمة YAML لـ Go خيارًا إضافيًا.
7. وصف حزم جولانج؟
الحزم عبارة عن مجلدات تحتوي على حزم أخرى وكود مصدرها في مساحة العمل Go. تتضمن الحزم المرتبطة كل التعليمات البرمجية ، بما في ذلك المتغيرات والوظائف والأنواع المكتوبة في الملفات المصدر.
كل ملف مصدر هو جزء من حزمة ، ويمكن تخزين حزم go داخل الحزم أيضًا.
8. ما أنواع البيانات التي يدعمها Golang؟
تستخدم Golang الأنواع التالية:
- خدمة التوصيل
- منطقية
- رقمية
- خيط
- مؤشر
- المسمى الوظيفي
- السطح البيني
- شريحة
- الهيكل
- الخريطة
- قناة
- مجموعة
9. ماذا تقصد بالإعلان عن النوع الثابت لمتغير في Golang؟
يمكن للمترجم أن يستمر في تجميع آخر دون الحاجة إلى الحصول على معلومات شاملة عن المتغير بفضل الإعلانات المتغيرة من النوع الثابت ، والتي تؤكد له أنه لا يوجد سوى متغير واحد بالنوع والاسم المحددين.
إعلان المتغير مهم فقط أثناء التجميع ؛ يتطلب المترجم متغيرًا حقيقيًا وإعلانًا عند الاتصال بالتطبيق.
10. ما هو إعلان المتغير الديناميكي في Golang؟
يجب أن يشرح المترجم نوع المتغير في نوع ديناميكي من إعلان المتغير بناءً على المبلغ المحول إليه. كشرط مطلوب ، لا يتطلب المترجم متغيرًا لتصنيفه بشكل ثابت.
11. كيف يمكنني استخدام الحزم المخصصة في لغة برمجة GO؟
إذا كنت تقوم بإنشاء مشروع go -table منفصل لمكتبتك وهو مخصص للاستخدام الداخلي فقط ، فيمكنك كتابة رمز مثل هذا.
- ضع دليل ملفات المكتبة تحت دليل مشروعك.
- ارجع إلى المكتبة بمسارها بالنسبة إلى جذر مساحة العمل التي تحتوي على المشروع.
12. ما هو الجوروتين بالضبط؟ كيف يمكنك وضع حد لذلك؟
goroutine هي وظيفة أو إجراء يتم تشغيله في وقت واحد مع goroutines الأخرى على خيط goroutine مخصص. خيوط Goroutine أخف من الخيوط العادية ، ومعظم تطبيقات Golang تستخدم الآلاف من goroutines في وقت واحد.
يمكن إيقاف goroutine بتمريره قناة إشارة. يمكن أن تستجيب Goroutines للإشارات فقط إذا تم توجيهها للتحقق ، وبالتالي قم بتضمين عمليات التحقق في أماكن معقولة مثل الجزء العلوي من حلقة for.
13. وصف رون.
في Go ، الرون هو نوع مضمن باسم int32. تعمل Unicode CodePoint بمثابة رون في Go. بغض النظر عن عدد البايتات التي تشغلها نقطة الرمز ، يمكن تمثيلها بواسطة رون.
لا يشترط أن تكون الأحرف الرونية مرتبة في سلسلة. على الرغم من أنه يمكننا التحويل بين سلسلة ورون ، إلا أنهما ليسا متماثلين.
14. ما هو مصطلح Go لتمثيل التعدادات؟
لا تدعم لغة برمجة Golang التعدادات مباشرة. يمكن استخدام الأيوتا والثوابت لتنفيذ التعدادات. يمكن استخدام أي من الأساليب التالية لتنفيذ نوع تم تعداده:
- إدخال نوع عدد صحيح جديد
- يستخدم Iota للإشارة إلى قيمته.
- من خلال توفير دالة سلسلة للنوع
15. كيف يتم التحقق من نوع المتغير في وقت التشغيل؟
يعد مفتاح النوع هو الأسلوب الأكثر فاعلية لتحديد نوع المتغير في الوقت الفعلي. يتم تقييم المتغيرات حسب النوع بدلاً من القيمة عند استخدام مفتاح النوع.
كلا الحالة الافتراضية ، والتي يتم تنفيذها إذا لم تكن أي من الحالات صحيحة ، وحالة واحدة على الأقل ، والتي تعمل بمثابة بيان شرطي ، موجودة في كل مفتاح تحويل. يمكنك ، على سبيل المثال ، تصميم مفتاح نوع يحدد ما إذا كانت قيمة الواجهة التي أدرجها هي النوع int أو السلسلة:
16. وصف قنوات Go.
تتيح قناة go نقل البيانات ونقلها بين goroutines. يمكن إرسال البيانات من نفس النوع عبر قناة واحدة.
تستطيع Goroutines إرسال واستقبال البيانات عبر نفس القناة بسبب تدفق البيانات ثنائي الاتجاه للقناة.
17. شرح طرق جولانج.
لا يوفر Golang فئات ولكنه يدعم طرقًا. هذه الطرق متطابقة مع الوظائف ، باستثناء أن أساليب Go لها معلمة مستقبل.
يمكن لطريقة Go الوصول إلى سمات المستقبل عبر معلمات المستقبِل. تساعد طرق Go ، والمعروفة أيضًا باسم وظائف المستقبل ، في تقديم فكرة أكثر دقة وواقعية.
18. ما هو بالضبط سباق البيانات؟
التصحيح الأكثر شيوعًا وصعوبة هو سباق البيانات. يؤدي الوصول غير المتزامن إلى الذاكرة المشتركة أو تنفيذ العديد من goroutines في نفس الوقت دون معالجة منفصلة إلى حدوث خطأ في سباق البيانات.
19. ما هو بالضبط جمع القمامة Go؟
تقوم مجموعة البيانات المهملة بإعادة استخدام التخزين الذي تم تعيينه ديناميكيًا لبرنامج ما لاستخدامه بواسطة كائنات أخرى. تشير الكلمة غالبًا إلى التجديد الآلي لمجمع النفايات للتخزين الروتيني بدلاً من الشفرة الصريحة (التي يوفرها المبرمج) لتحرير كتل ذاكرة معينة.
يبدأ جمع المهملات التلقائي بشكل متكرر عندما تقل كمية ذاكرة الوصول العشوائي المجانية عن عتبة محددة مسبقًا أو بعد عدد محدد من التخصيصات.
يُشار إلى التخلص من العناصر التي لم يعد البرنامج يتطلبها لإنشاء مكان في الذاكرة للكائنات الأكثر ديناميكية باسم "تجميع البيانات المهملة".
20. وصف مراحل الاختبار باستخدام Golang.
توفر Golang اختبارًا آليًا للحزم باستخدام مجموعات اختبار مخصصة. لإنشاء مجموعة جديدة ، قم بإنشاء ملف ينتهي بـ _test.go ويتضمن وظيفة TestXxx ، حيث يتم استبدال Xxx باسم الميزة التي تختبرها.
الوظيفة التي تختبر قدرات تسجيل الدخول ، على سبيل المثال ، ستسمى TestLogin. ثم يتم تضمين ملف مجموعة الاختبار في نفس الحزمة مثل الملف الجاري اختباره.
سيتم تخطي ملف الاختبار أثناء التنفيذ العادي ولكن سيتم تشغيله عند إدخال الأمر go test.
21. ما هي الشرائح بالضبط في Go؟
تعد الشرائح أحد أنواع بيانات Go المهمة التي توفر واجهة أكثر قوة للتسلسلات من المصفوفات. على عكس المصفوفات ، يتم كتابة الشرائح فقط بناءً على العناصر التي تحتوي عليها (وليس عدد العناصر).
لإنشاء شريحة فارغة بطول ليس صفرًا ، استخدم الكلمة الأساسية المضمنة "make".
22. ما هي ذاكرة الكومة بالضبط؟
نقوم بتخزين العناصر والمتغيرات المكونة ديناميكيًا في ذاكرة الكومة. عندما لا نستخدم كائنًا بعد الآن ، فإننا عادةً ما نحذف ذاكرة الكومة التي يشغلها.
23. ما هي بالضبط وظيفة إغلاق؟
عمليات إغلاق الوظائف هي نوع من قيمة الدالة التي تُنشئ متغيرات مرجعية خارجيًا. تتمتع الوظيفة بإمكانية الوصول إلى قيم المتغيرات المشار إليها والتحكم فيها.
كتوضيح ، يتم ربط كلٍّ من الإغلاق المُرجع بواسطة adder () بمتغير مجموع مرجعي مختلف.
24. ماذا يعني تصريح Goo الخاص بـ Golang؟
تعمل تعليمة goto بمثابة تعليمة قفزة في Golang. يستخدم Goto لتوفير عنصر تحكم تسمية محدد على البرنامج.
يمكن استخدامه لتخطي أجزاء من الكود والانتقال مباشرة إلى العبارات الضرورية ، أو يمكن استخدامه لتكرار جزء من كود البرنامج في ظل ظروف معينة.
25. في Golang ، ما هي Lvalue و Rvalue؟
القيمة:
- إنه يلمح إلى مكان للذاكرة.
- يمكن تغييره.
- يشير إلى معرف متغير.
- قد يحدث على يسار أو يمين عامل التشغيل =.
- في السطر x = 20 ، على سبيل المثال ، x هي قيمة lvalue و 20 هي rvalue.
قيمة R:
- يدل على قيمة ثابتة.
- يمثل قيمة البيانات المخزنة في الذاكرة.
- يحدث دائمًا على الجانب الأيمن من عامل التشغيل =.
- التعبير 10 = 20 غير صحيح ، على سبيل المثال ، نظرًا لوجود rvalue (10) على يسار عامل التشغيل =.
26. في Go ، ما هي بنيات التكرار؟
لا يوجد سوى مكون حلقات واحد في Go: الحلقة for. تتكون حلقة for من ثلاثة أجزاء مفصولة بفواصل منقوطة:
- يتم تشغيل العبارة التهيئة قبل أن تبدأ الحلقة. غالبًا ما يكون إعلانًا عن متغير يظهر فقط داخل نطاق حلقة for.
- قبل كل تكرار ، يتم تقييم عبارة الشرط على أنها منطقية لتحديد ما إذا كانت الحلقة يجب أن تستمر.
- يتم تشغيل بيان post في ختام كل تكرار.
27. ما هي أنماط التصميم بالضبط؟
أنماط التصميم عبارة عن أجزاء من التعليمات البرمجية يمكن إعادة استخدامها لمعالجة مشكلات البرامج الشائعة. إذا كنت تستخدم أنماط تصميم ، فإن مشاريعك ستنشئ المزيد من البرامج المعيارية والقابلة للتطوير والفعالية. تساعدك أنماط التصميم في توسيع تطبيقاتك والعمل مع فريق. تشمل أنماط التصميم الشائعة طريقة المصنع ، والواجهة المفردة ، والواجهة ، والديكور.
28. ما هي أفضل حزمة Golang لعمليات الملفات البسيطة؟ ما حزم Golang الإضافية المستخدمة لمعالجة الملفات؟
يتم توفير الواجهة المستقلة عن النظام الأساسي بواسطة حزمة مكتبة نظام التشغيل القياسية. عند التفاعل مع الملفات ، نستخدمها لوظائف النظام. من المفترض أن تكون واجهة نظام التشغيل متسقة عبر جميع أنظمة التشغيل.
نتيجة لذلك ، تعمل التطبيقات التي نطورها بنفس الطريقة على أنظمة التشغيل Windows و Linux و Mac. تتضمن حزم مكتبة Go القياسية الأخرى io و ioutil و bufio. تعمل مع الملفات وتضيف وظائف. ومع ذلك ، فهي ليست مطلوبة لعمليات الملفات الأساسية. نحن فقط نطلب حزمة نظام التشغيل.
29. قدم شرحاً عن الهندسة المعمارية الشيئية لـ Golang.
لا يستخدم Golang تصميم كائن فئة كتصميم تقليدي البرمجة الشيئية يفعل. وبدلاً من ذلك ، يتم تخزين هياكل وسلوك البيانات المعقدة في هياكل وأساليب.
الهيكل هو مجرد مخطط مع مخطط للبيانات التي سيحملها الهيكل. يمكن استخدام الهياكل لترمز إلى الأفكار من العالم الفعلي ، مثل الكتب أو الأشخاص أو السيارات.
30. ما أنواع التحويل التي يدعمها Golang؟
عندما يتعلق الأمر بالكتابة الصريحة ، فإن Go يكون صعب الإرضاء للغاية. لا نوع التحويل يتم تلقائيا. لتعيين متغير من نوع إلى آخر ، يجب إجراء تحويل النوع بشكل صريح.
31. وصف الغرض من تأكيد النوع وتشغيله.
في GO ، يتم استخدام تحويل النوع لتحويل الأنواع المتباينة. يتم استخراج قيمة صريحة للنوع المحدد من قيمة واجهة بواسطة تأكيد النوع.
32. ما هو بالضبط نوع الهيكل؟
يتكون الهيكل من قائمة بالمكونات المسماة تسمى الحقول. هناك نوع واسم لكل مجال. هناك طريقة أخرى لتصور البنية وهي أن تكون مجموعة من الخصائص المتصلة. إنها مفيدة لدمج البيانات لإنشاء السجلات.
33. شرح مصفوفة دعم قيمة شريحة.
عندما نبني شريحة ، ينتج Go مصفوفة سرية تسمى الدعم أو المصفوفة الأساسية خلف الكواليس ، ويشير متغير نوع الشريحة الجديدة إليها. يتم تخزين العناصر ، وليس الشريحة ، في مصفوفة النسخ.
يتم تنفيذ الشرائح في Go على هيئة هياكل بيانات تسمى رؤوس الشرائح ، والتي تعمل كتمثيل لوقت تشغيل الشريحة.
34. هل من الضروري وجود متغيري GOPATH و GOROOT ، وإذا كان الأمر كذلك ، فلماذا؟
عادة ، ليس من الضروري. المتغير الوحيد الذي يجب ضبطه للإشارة إلى شجرة حزمة Go أو الأشجار هو GOPATH.
يشير GOROOT إلى جذر الدليل الرئيسي للغة برمجة Go ، ومع ذلك ، فمن المؤكد تقريبًا أنه تم تعيينه بالفعل على موقع تثبيت Go الحالي.
إذا كان هناك العديد من إصدارات لغة Go على نفس النظام ، أو إذا تم تنزيل لغة Go كحزمة ثنائية من الإنترنت أو تم نقلها من جهاز آخر ، فيجب تعيين متغير GOROOT.
35. هل يتيح Golang الميراث؟
الوراثة هي فكرة أساسية في البرمجة الشيئية التي تشير إلى تمرير خصائص الطبقة الفائقة إلى الفئة الأساسية.
نظرًا لأن Golang يفتقر إلى الفئات ، يتم تحقيق الميراث باستخدام تضمين البنية ولا يمكن توسيع البنيات بشكل مباشر ، يجب علينا استخدام فكرة التكوين لإنشاء كائنات جديدة باستخدام البنية.
36. في Golang ، كيف يظهر CGo؟
من ملف Go المصدر مع ميزات محددة ، يقوم cGo بإنشاء ملفات Go و C التي يمكن تجميعها في حزمة Go فريدة. تشير C إلى "حزمة زائفة" ، وهي عبارة مختلفة تم إنشاؤها بواسطة cGo للإشارة إلى مساحة الاسم الخاصة بـ C.
37. ما هو نوع المؤشر في Golang؟
تُعرف التعيينات أو الملصقات الأبجدية الرقمية لمناطق ذاكرة معينة بالمتغيرات. نوع من المتغيرات المعروفة باسم المؤشر يخزن عنوان الذاكرة لمتغير آخر.
يتم تمثيل عنوان المتغير بقيمة المؤشر ، أو لا شيء إذا لم يتم تحديد المتغير بعد. مثلما يمثل المتغير موقع ذاكرة القيمة ، يشير المؤشر إلى ذلك العنوان.
وفي الختام
كان الهدف من لغة برمجة Golang هو إنشاء برامج فعالة بسرعة أكبر. بدأت الشركات في استخدام Golang عندما بدأت تدرك إمكانياتها المفيدة.
لقد كان Golang فعالًا للغاية في إثارة اهتمام المطورين ، وزيادة استخدامهم الأساسي ، وبالتالي فرص العمل. يمكن أن تساعدك الإجابات على الأسئلة المذكورة أعلاه ، والتي تعد الأكثر شيوعًا خلال مقابلات Golang ، في الحصول على وظيفة Golang التي تبحث عنها.
يرى سلسلة مقابلة هاشدورك للمساعدة في التحضير للمقابلة.
اترك تعليق