المتغيرات

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

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

أولا :تعريف المتغيرات :-

اسناد القيمة :

يمكنك التعريف بالمتغير عن طريق تعريفه واسناد القيمة له مباشرة .

var myName=”Ahmed”
var myAge=27

في المثال أعلاه لم نذكر النوع ولكن اسندنا القيمة كيف يستطيع البرنامج معرفة نوع المتغير ؟ بواسطة compiler الذي يقوم بمعرفة النوع من خلال القيمة المسندة له .

اذا قمت باسناد قيمة للمتغير من نوع Int مثلاً فانك لن تستطيع تغييرها الى اي نوع آخر

var age = 12
age = "12 years old" // Error: type mismatch

تعريف بالمتغير والتعريف بنوعه واسناد القيمة مباشرة :

يمكنك التعريف بالمتغير والتعريف بنوعه مع مراعاة كتابة أول حرف من نوعه بحرف كبير.

var myName : String =”Ahmed”
var myAge:Int=27

تعريف بالمتغير والتعريف بنوعه واسناد القيمة لاحقاً :

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

var myName : String
myName=”Ahmed”

يراعى عند تعريف المتغيرات في لغة kotlin أنها لا تبدأ بأي حرف من الرموز المخصصة باستثناء (ـ) ما تعرف بالشرطة التحتية أو underscore .


ثانياً:أنواع المتغيرات :

العدد الصحيح

Int

عدد صحيح قصير

Short

عدد صحيح طويل

Long

قيمة عشرية بسيطة

Float

قيمة عشرية أكثر دقة وتحديد

Double

حرف

Char

سلسلة نصية

String

متغير منطقي

Bolean

للتفريق بين Double و Float هو عندما نريد تعريف متغير عشري من نوع Float   نضع في نهايته حرف f.

مع ملاحظة ان المتغير double يتكون من 64bit بعكس float الذي يتكون من 32bit فقط

var cost:Double=12.9001111
var cost = 14.1655f

الثوابت :-

تنطبق عليه نفس مواصفات المتغيرات باستثناء أنه قيمة غير قابلة للتعديل أثناء البرنامج ولتعريف الثابت نستخدم كلمة val ، يمكننا الاستفادة منه في تعريف القوانين الرياضية أو لو كان هنالك رقم وظيفي فهو ثابت بالطبع لا يمكن تغييره آو رقم الهوية الوطني.

val id:Int=601121
id = 1234 // Error

ثالثاً:تحويل المتغيرات :

ربما كتبت متغير واردت تحويل الى اي نوع آخر فانك لن تستطيع ذلك بسبب انك قد حددت نوع المتغير او ان Compiler قد قام بتحديد نوع المتغير اذا كان اسناد القيمة بشكل مباشر .
تحويل المتغيرات ابسط مما تتخيل لن تحتاج الى اكثر من سطر او ذاكرة كبيره لحفظ الطريقة . تابع الشفرة القادمة .

val number1: Int = 55
val number2: Long = number1.toLong()

لاحظ قمنا بتحويل Int الى Long باستخدام دالة toLong() وبشكل سلس وبسيط .

قائمة بجميع دوال التحويل :

لاحظ لا يوجد تغيير للمتغير Boolean !


رابعاً:برنامج “hello world“:-

fun main(args : Array<String>)
{
    println("hello world")
}

نرى هنا الفرق الواضح بينها وبين لغة الجافا من حيث الاختصار الشديد في كتابة الدالة والواضح في كتابة جملة الطباعة أيضا.

جملة الطباعة تكتب بطريقتين اما print او  println الفرق الوحيد بينهما ان الأخيرة تسمح بترك سطر اسفل الجملة المطبوعة.

مثال :

fun main(args : Array<String>)
{
    var id:Int=105541;
    var carName:String="Corolla";
    var price:Double= 1593.32;
    println("this car is : $carName  and its price :$price")
}

في جملة الطباعة هذه أردنا كتابة جملة ومن ثم المتغير الذي يحمل قيمتها وفصلنا بينهما بعلامة + ، هنالك أيضاً طريقة أخرى سنتعرف عليها وهي :

println("this car is :$carName and its price: $price")