البنية النحوية والأنواع الأساسية
افهم البنية النحوية الأساسية في Scala، وتصريحات المتغيرات (val/var)، وأنواع البيانات الشائعة، والمعاملات الأساسية
البنية النحوية والأنواع الأساسية درس مجاني في Scala for Backend Engineering & Functional Programming على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Scala for Backend Engineering & Functional Programming، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Scala for Backend Engineering & Functional Programming 3 دروس في المجموع.
الصياغة النظيفة في Scala
مرحبًا بكم في الصياغة الأساسية في Scala! صُممت Scala لتكون موجزة وواضحة، وغالبًا ما تتيح لكم كتابة شيفرة أقل لتحقيق نتائج أكثر.
على خلاف بعض اللغات، تكون الفواصل المنقوطة اختيارية عادةً في نهاية السطر إذا كان يحتوي على تعليمة واحدة فقط. وهذا يساعد على إبقاء الشيفرة نظيفة.
التعبيرات هي الأساس
في Scala، كل شيء تقريبًا هو تعبير، أي إنه يُقيَّم إلى قيمة. وهذا مفهوم قوي يجعل شيفرتكم أكثر وظيفية وأسهل في التنبؤ بسلوكها.
حتى عملية حسابية بسيطة أو كتلة شرطية يمكن أن تعيد قيمة.
حاولوا تشغيل هذا المثال:
object Main {
def main(args: Array[String]): Unit = {
val x = 5 + 3
println(s"The value of x is: $x")
val message = if (x > 7) "Greater than 7" else "Not greater than 7"
println(message)
}
}`val`: قيم غير قابلة للتغيير
عند التصريح عن متغير باستخدام val، فإنكم تنشئون قيمة غير قابلة للتغيير. وهذا يعني أنه لا يمكن تغيير قيمتها بعد إسنادها.
عدم القابلية للتغيير ركيزة أساسية في البرمجة الوظيفية، ويساعد على منع الآثار الجانبية غير المتوقعة، مما يجعل الشيفرة أكثر أمانًا وأسهل في الفهم.
جرّبوها:
object Main {
def main(args: Array[String]): Unit = {
val greeting = "Hello, Coddy!"
println(greeting)
// greeting = "New message" // This would cause a compile error!
}
}`var`: متغيرات قابلة للتغيير
قد تحتاجون أحيانًا إلى متغير يمكن أن تتغير قيمته. لهذا الغرض، توفر Scala الكلمة var للمتغيرات القابلة للتغيير.
مع أنها مفيدة، فمن الممارسات الجيدة في Scala تفضيل val على var كلما أمكن، للاستفادة من عدم القابلية للتغيير والأسلوب الوظيفي.
شاهدوا كيفية عمل `var`:
object Main {
def main(args: Array[String]): Unit = {
var counter = 0
println(s"Initial counter: $counter")
counter = counter + 1
println(s"New counter: $counter")
}
}الأعداد: Int وLong وDouble
تدعم Scala أنواعًا عددية شائعة. وغالبًا ما يستنتج المترجم النوع، لكن يمكنكم تحديده صراحةً.
Int: للأعداد الصحيحة (مثل10)Long: للأعداد الصحيحة الأكبر (باللاحقةL، مثل10000000000L)Double: للأعداد ذات الفاصلة العائمة (الأعداد العشرية، مثل3.14)
إليكم مثالًا:
object Main {
def main(args: Array[String]): Unit = {
val anInt = 42
val aLong = 1234567890123L
val aDouble = 3.14159
println(s"Int: $anInt")
println(s"Long: $aLong")
println(s"Double: $aDouble")
}
}نوعا Boolean وChar
بالإضافة إلى الأعداد، توفر Scala أنواعًا لقيم الصواب والمحارف المفردة:
Boolean: يمثل قيم الصواب، إماtrueأوfalse.Char: يخزن محرفًا واحدًا محاطًا بعلامتي اقتباس مفردتين (مثل'A').
وهذان النوعان أساسيان للمنطق ومعالجة النصوص.
مثال:
object Main {
def main(args: Array[String]): Unit = {
val isActive = true
val initial = 'C'
println(s"Is active? $isActive")
println(s"Initial character: $initial")
}
}السلاسل النصية والنصوص
يُستخدم النوع String لتخزين تسلسلات المحارف أو النصوص. والسلاسل النصية غير قابلة للتغيير في Scala، تمامًا كما هي الحال في Java.
ومن الميزات المفيدة جدًا استيفاء السلاسل النصية، الذي يتيح لكم تضمين تعبيرات مباشرةً داخل القيم الحرفية للسلاسل النصية باستخدام البادئة s والرمز $ للمتغيرات.
ألقوا نظرة على هذا:
object Main {
def main(args: Array[String]): Unit = {
val name = "Coddy"
val age = 3
val greeting = s"Hello, my name is $name and I am $age years old."
println(greeting)
val mathResult = s"Two plus two is ${2 + 2}"
println(mathResult)
}
}عوامل الحساب الأساسية
توفر Scala عوامل حسابية قياسية لإجراء العمليات الحسابية على الأعداد:
+(الجمع)-(الطرح)*(الضرب)/(القسمة)%(الباقي - باقي القسمة)
تعمل هذه العوامل كما تتوقعون، إذ تعيد قيمة عددية جديدة.
لنجَرِّب بعض العمليات الحسابية:
object Main {
def main(args: Array[String]): Unit = {
val a = 10
val b = 3
println(s"Addition: ${a + b}")
println(s"Subtraction: ${a - b}")
println(s"Multiplication: ${a * b}")
println(s"Division: ${a / b} (integer division)")
println(s"Modulo: ${a % b}")
val c = 10.0
val d = 3.0
println(s"Float Division: ${c / d}")
}
}عوامل المقارنة
تُستخدم عوامل المقارنة لمقارنة قيمتين، وتعيد دائمًا قيمة Boolean (true أو false).
==(يساوي)!=(لا يساوي)<(أصغر من)>(أكبر من)<=(أصغر من أو يساوي)>=(أكبر من أو يساوي)
وهي ضرورية للتحكم في التدفق واتخاذ القرارات.
object Main {
def main(args: Array[String]): Unit = {
val x = 10
val y = 5
println(s"x == y: ${x == y}")
println(s"x != y: ${x != y}")
println(s"x > y: ${x > y}")
println(s"x <= y: ${x <= y}")
}
}تحقق سريع: المتغيرات والعوامل
تأملوا مقتطف شيفرة Scala التالي:
object Main {
def main(args: Array[String]): Unit = {
val num1 = 7
var num2 = 3
num2 = num1 * 2
val finalResult = num1 + num2 - 5
println(finalResult)
}
}مراجعة: الصياغة والأنواع
أحسنتم! في هذا الدرس، تعلمتم أساسيات الصياغة في Scala، بما في ذلك استخدام التعبيرات والطبيعة الاختيارية للفواصل المنقوطة.
استكشفنا كيفية التصريح عن المتغيرات باستخدام val للقيم غير القابلة للتغيير وvar للقيم القابلة للتغيير. كما تعرفتم إلى أنواع البيانات الشائعة مثل Int وLong وDouble وBoolean وChar وString، بما في ذلك استيفاء السلاسل النصية المفيد.
وأخيرًا، تدربتم على استخدام عوامل الحساب والمقارنة الأساسية لإجراء العمليات الحسابية والتحققات المنطقية. واصلوا التدرب على هذه الأساسيات، فهي اللبنات التي تُبنى عليها برامج Scala الأكثر تعقيدًا!
الأسئلة الشائعة
هل درس «البنية النحوية والأنواع الأساسية» مجاني؟
نعم — نص درس «البنية النحوية والأنواع الأساسية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Scala for Backend Engineering & Functional Programming، انتقل إلى CoddyKit PRO. تتضمن دورة Scala for Backend Engineering & Functional Programming 3 دروس في المجموع.
ماذا ستتعلم في «البنية النحوية والأنواع الأساسية»؟
افهم البنية النحوية الأساسية في Scala، وتصريحات المتغيرات (val/var)، وأنواع البيانات الشائعة، والمعاملات الأساسية تتمرن على Scala for Backend Engineering & Functional Programming مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Scala for Backend Engineering & Functional Programming؟
لا تُشترط خبرة سابقة. Scala for Backend Engineering & Functional Programming على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.
كم من الوقت يستغرق درس «البنية النحوية والأنواع الأساسية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Scala for Backend Engineering & Functional Programming هذا؟
نعم. كل درس في Scala for Backend Engineering & Functional Programming يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- البدء باستخدام Scala
- البنية النحوية والأنواع الأساسية
- بُنى التحكم والدوال