أهم 25 أسئلة وأجوبة لمقابلة Scala (PDF)

فيما يلي أسئلة وأجوبة مقابلة Scala للمرشحين الجدد وذوي الخبرة للحصول على وظيفة أحلامهم.

 

أسئلة وأجوبة مقابلة Scala للطلاب الجدد

1) اشرح ما هو سكالا؟

Scala هي لغة برمجة وظيفية للكائنات ولغة برمجة نصية لتطبيقات البرامج العامة المصممة للتعبير عن الحلول بطريقة موجزة.


2) ما هي "مجموعة سكالا"؟ ما هي الطرق التي يتم من خلالها التعبير عن مجموعات العمليات؟

مجموعة سكالا هي مجموعة من العناصر الزوجية من نفس النوع. لا تحتوي مجموعة سكالا على أي عناصر مكررة. هناك نوعان من المجموعات، قابلة للتغيير وغير قابلة للتغيير.

👉 تنزيل مجاني بصيغة PDF: أسئلة وأجوبة مقابلة Scala >>


3) ما هي "خريطة سكالا"؟

خريطة Scala عبارة عن مجموعة من أزواج المفاتيح أو القيمة. استنادا إلى مفتاحه يمكن استرجاع أي قيمة. القيم ليست فريدة ولكن المفاتيح فريدة في الخريطة.

أسئلة مقابلة سكالا


4) ما هي ميزة سكالا؟

مزايا سكالا هي:

  • Less أسلوب وظيفي عرضة للخطأ
  • قابلية الصيانة العالية والإنتاجية
  • قابلية عالية
  • قابلية اختبار عالية
  • يوفر ميزات البرمجة المتزامنة

5) ما هي النواحي التي تجعل Scala أفضل من لغات البرمجة الأخرى؟

  • تستخدم المصفوفات الأدوية العامة العادية، بينما في اللغة الأخرى، يتم تثبيت الأدوية العامة كفكرة لاحقة وهي منفصلة تمامًا ولكن لها سلوكيات متداخلة مع المصفوفات.
  • Scala لديه "val" غير قابل للتغيير كميزة لغة من الدرجة الأولى. "فال" سكالا مشابه لـ Java المتغيرات النهائية. قد تتغير المحتويات ولكن المرجع العلوي غير قابل للتغيير.
  • تسمح لغة سكالا باستخدام "كتل if" و"حلقات for-yield" و"الترميز" بين قوسين لإرجاع قيمة. وهذا أفضل، ويزيل الحاجة إلى عامل ثلاثي منفصل.
  • يحتوي Singleton على كائنات مفردة بدلاً من C++/Java/ C# ثابت كلاسيكي. إنه حل أنظف
  • المجموعات الثابتة غير القابلة للتغيير هي المجموعات الافتراضية وهي مدمجة في المكتبة القياسية.
  • لديها صفوف أصلية ورمز موجز
  • ليس لديها رمز لوحة الغلاية

6) ما هي متغيرات سكالا؟

القيم و المتغيرات هما الشكلان اللذان يأتيان في سكالا. متغير القيمة ثابت ولا يمكن تغييره بمجرد تعيينه. إنه غير قابل للتغيير، في حين أن المتغير العادي، من ناحية أخرى، قابل للتغيير، ويمكنك تغيير القيمة.

نوعان من المتغيرات هما

var myVar : Int=0;

val myVal: Int=1;


7) اذكر الفرق بين الكائن والفئة؟

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


8) ما هو ذيل العودية في سكالا؟

"العودية" هي وظيفة تستدعي نفسها. الدالة التي تطلق على نفسها، على سبيل المثال، دالة "أ" تستدعي الوظيفة "ب"، التي تستدعي الدالة "ج". إنها تقنية تستخدم بشكل متكرر في البرمجة الوظيفية. لكي يكون الذيل متكررًا، يجب أن يكون استدعاء الوظيفة هو آخر وظيفة يتم تنفيذها.


9) ما هي "سمة سكالا" في سكالا؟

تُستخدم "السمات" لتحديد أنواع الكائنات المحددة بواسطة توقيع الطرق المدعومة. يسمح Scala بالتنفيذ جزئيًا ولكن قد لا تحتوي السمات على معلمات مُنشئة. تتكون السمة من تعريف الأسلوب والمجال، ومن خلال مزجهما في فئات يمكن إعادة استخدامها.


10) متى يمكنك استخدام السمات؟

لا توجد قاعدة محددة يمكنك فيها استخدام السمات، ولكن هناك إرشادات يمكنك وضعها في الاعتبار.

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

أسئلة مقابلة سكالا للخبرة

11) ما هي فئات الحالة؟

توفر فئات الحالة آلية تحليل متكررة من خلال مطابقة الأنماط، وهي فئات عادية تقوم بتصدير معلمة المنشئ الخاصة بها. يمكن الوصول إلى معلمات المُنشئ لفئات الحالة مباشرةً ومعاملتها كقيم عامة.


12) ما هو استخدام الصفوف في سكالا؟

تجمع صفوف Scala عددًا ثابتًا من العناصر معًا بحيث يمكن تمريرها ككل. الصف غير قابل للتغيير ويمكنه الاحتفاظ بكائنات بأنواع مختلفة، على عكس المصفوفة أو القائمة.


13) ما هي وظيفة الكاري في سكالا؟

Currying هو أسلوب تحويل دالة تأخذ وسائط متعددة إلى دالة تأخذ وسيطة واحدة. العديد من التقنيات نفسها مثل لغة مثل Haskell و LISP مدعومة بواسطة Scala. تعتبر وظيفة الكاري واحدة من أقل الوظائف استخدامًا وسوء الفهم.


14) ما هي المعلمات الضمنية في سكالا؟

المعلمة الضمنية هي الطريقة التي تسمح بـ "العثور" على معلمات الطريقة. وهي تشبه المعلمات الافتراضية، ولكن لديها آلية مختلفة للعثور على القيمة "الافتراضية". المعلمة الضمنية هي معلمة للأسلوب أو المُنشئ الذي تم وضع علامة عليه على أنه ضمني. هذا يعني أنه إذا لم يتم ذكر قيمة المعلمة، فسيقوم المترجم بالبحث عن قيمة "ضمنية" محددة داخل النطاق.


15) ما هو الإغلاق في سكالا؟

الإغلاق هو دالة تعتمد قيمتها المرجعة على قيمة المتغيرات المعلنة خارج الدالة.


16) ما هو الموناد في سكالا؟

الموناد هو كائن يغلف كائنًا آخر. يمكنك تمرير برامج Monad المصغرة، أي الوظائف، لإجراء معالجة بيانات الكائن الأساسي، بدلاً من معالجة الكائن مباشرة. يختار Monad كيفية تطبيق البرنامج على الكائن الأساسي.


17) ما هي وظيفة سكالا المجهولة؟

في التعليمات البرمجية المصدر، تسمى الوظائف المجهولة "الدالة الحرفية" وفي وقت التشغيل، يتم إنشاء مثيل للدالة الحرفية في كائنات تسمى قيم الوظيفة. يوفر Scala بناء جملة سهلًا نسبيًا لتعريف الوظائف المجهولة.


18) اشرح وظائف "Scala Higher Order"؟

تسمح لغة سكالا بتعريف دوال من الدرجة الأعلى. وهي دوال تأخذ دوال أخرى كمعاملات، أو تكون نتيجتها دالة. في المثال التالي، تأخذ دالة apply() دالة أخرى 'f' وقيمة 'v' وتطبق الدالة على v.

على سبيل المثال:

object Test {

def main(args: Array[String]) {

println( apply( layout, 10) )

}

def apply(f: Int => String, v: Int) = f(v)

def layout[A](x: A) = "[" + x.toString() + "]"

عندما يتم تجميع الكود أعلاه وتنفيذه، فإنه ينتج النتيجة التالية.

C:/>scalac Test.scala
C:/>scala Test
[10]
C:/>

19) ما الفرق بين var والقيمة؟

في scala، يمكنك تحديد متغير باستخدام الكلمات الأساسية a أو val أو var. الفرق بين val و var هو أن var يشبه إلى حد كبير إعلان Java، لكن val مختلف قليلاً. لا يمكننا تغيير المرجع للإشارة إلى مرجع آخر، بمجرد الإعلان عن المتغير باستخدام val. المتغير المحدد باستخدام الكلمات الأساسية var قابل للتغيير ويمكن تغييره لأي عدد من المرات.


20) ما هي الخيارات، بعض ولا شيء في سكالا؟

"الخيار" هو نوع Scala عام يمكن أن يكون إما قيمة عامة "بعض" أو لا شيء. غالبًا ما تستخدمه "قائمة الانتظار" لتمثيل العناصر الأولية التي قد تكون فارغة.


21) كيف يمكنني الإلحاق بالقائمة؟

في Scala للإلحاق بقائمة، استخدم ":+” single value

var myList = List.empty[String]
myList :+= "a"
myList :+= "b"
myList :+= "c"
use++ for appending a list
var myList = List.empty[String]
myList ++= List("a", "b", "c")

22) كيف يمكنك تنسيق سلسلة؟

لتنسيق سلسلة، استخدم طريقة .format ()، حيث يمكنك استخدامها في scala

Val formatted= “%s %i”.format (mystring.myInt)


23) لماذا يفضل سكالا الثبات؟

يفضل Scala الثبات في التصميم ويستخدمه في كثير من الحالات كإعداد افتراضي. يمكن أن تساعد الثبات عند التعامل مع قضايا المساواة أو البرامج المتزامنة.


24) ما هي الأنواع الأربعة لمعرفات سكالا؟

الأنواع الأربعة من المعرفات هي

  • معرفات ألفا الرقمية
  • Operaمعرفات تور
  • معرفات مختلطة
  • معرفات حرفية

25) ما هي الأنواع المختلفة لحرف Scala؟

الأنواع المختلفة من الحروف في سكالا هي

  • عدد صحيح حرفية
  • حرفية الفاصلة العائمة
  • القيم المنطقية
  • حرفيات الرمز
  • الأحرف الحرفية
  • سلسلة حرفية
  • سلاسل متعددة الخطوط

ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)