انتقل إلى المحتوى الرئيسي

الدوال والمتغيرات

مقدمة

الفلسفة الأساسية لتصميم لغة Wave هي تحقيق توازن بين الأداء المنخفض المستوى والتجريد عالي المستوى، مما يوفر بيئة مرنة وفعالة لتطوير البرمجيات. في هذا القسم، سوف نقدم المكونات الأساسية لبرنامج Wave: الدوال والمتغيرات. تعتبر هذه المكونات أساسية لتنظيم المنطق وإدارة البيانات داخل البرنامج. من خلال فهم كيفية تعريف وتناول الدوال والمتغيرات، يمكنك الاستفادة القصوى من إمكانيات لغة Wave.


الدوال

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

يبدأ تعريف الدوال في Wave بكلمة fun، ويتبعها اسم الدالة، والمعاملات (إن وجدت)، وجسم الدالة المحاط بأقواس {}.

تعريف دالة

يتم تعريف دالة أساسية في Wave على النحو التالي:

fun main() {
// اكتب الشيفرة هنا
}
  • دالة main هي نقطة الدخول لتشغيل البرنامج، وهي ضرورية دائمًا.
  • يمكن للدوال أن تحتوي على معاملات وقد تُرجع قيمًا. يتم تحديد نوع القيمة المعادة بعد اسم الدالة.

مثال: دالة بسيطة

fun add(a :i32, b :i32) -> i32 {
return a + b;
}

fun main() {
var result = add(5, 7); // استدعاء دالة add
println(result); // المخرجات: 12
}

في المثال أعلاه:

  • دالة add تستقبل عددين صحيحين a و b وتعيد مجموعهما.
  • دالة main تستدعي دالة add وتطبع النتيجة.

المتغيرات

المتغيرات تُستخدم لتخزين البيانات والتعامل معها داخل البرنامج. تدعم Wave المتغيرات القابلة للتغيير وغير القابلة للتغيير، مما يوفر للمطورين التحكم في إدارة البيانات.

المتغيرات القابلة للتغيير

في Wave، تكون المتغيرات بشكل افتراضي قابلة للتغيير (mutable)، مما يعني أنه يمكن تغيير قيمتها أثناء تنفيذ البرنامج.

يتم تعريف المتغيرات القابلة للتغيير باستخدام الكلمة الرئيسية var.

var x :i32 = 10; // متغير قابل للتغيير
x = 20;

في هذا المثال:

  • x هو متغير قابل للتغيير، يبدأ بالقيمة 10 ويمكن تغيير قيمته لاحقًا إلى 20.

المتغيرات غير القابلة للتغيير

عند تعريف متغير على أنه غير قابل للتغيير (immutable)، لا يمكن تعديل قيمته بعد تعيينها.

يتم تعريف المتغيرات غير القابلة للتغيير باستخدام الكلمة var imm.

var imm y :i32 = 5;     // متغير غير قابل للتغيير
// y = 10; // خطأ: لا يمكن تغيير قيمة المتغير غير القابل للتغيير

في هذه الحالة:

  • y هو متغير غير قابل للتغيير، وإذا حاولت تعديل قيمته، سيحدث خطأ في الترجمة.

مثال على تعريف المتغيرات

إليك أمثلة لتعريف متغيرات قابلة للتغيير وغير قابلة للتغيير بأنواع مختلفة:

var x :i32 = 10;                    // متغير صحيح قابل للتغيير
var imm y :f64 = 3.14159; // متغير عشري غير قابل للتغيير
var name :str = "Wave"; // متغير سلسلة قابل للتغيير
var imm is_active :bool = true; // متغير منطقي غير قابل للتغيير
  • x هو متغير صحيح قابل للتغيير.
  • y هو متغير عشري غير قابل للتغيير.
  • name هو متغير سلسلة قابل للتغيير.
  • is_active هو متغير منطقي غير قابل للتغيير.

في Wave، يتم استخدام الكلمة var لتعريف المتغيرات القابلة للتغيير، بينما يتم استخدام الكلمة var imm لتعريف المتغيرات غير القابلة للتغيير بعد تعيين قيمتها الأولى.

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