English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم المتغيرات وكيفية إنشائها وأنواع البيانات الأساسية التي يدعمها Kotlin لإنشاء المتغيرات.
كما تعلمون، المتغيرات هي مواقع في ذاكرة (منطقة التخزين) تستخدم لتخزين البيانات.
لإشارة إلى منطقة التخزين، يجب أن تكون كل متغير له اسم فريد (مؤشر). تعرف علىكيفية تسمية المتغيرات في Kotlin؟المزيد من المعلومات
لإعلان المتغيرات في Kotlin، استخدم كلمات المفتاح var أو val. إليك مثال:
var language = "French" val score = 95
سيتم مناقشة الفرق بين var و val في هذا النص لاحقًا. دعونا نركز الآن على إعلان المتغيرات.
في هذا السياق، language هو متغير من نوع String، وscore هو متغير من نوع Int. لا تحتاج إلى تحديد نوع المتغير؛ Kotlin سيعين النوع لك تلقائيًا. يعرف المُراجع هذا من خلال التعبير التهيئة (في البرنامج السابق، "French" هو نص، و95 هو قيمة عددية) تقدير النوع.
لكن إذا كنت ترغب في تنفيذ العمليات التالية، يمكنك تحديد النوع بوضوح:
var language: String = "French" val score: Int = 95
في المثال السابق، قمنا بتهيئة المتغيرات أثناء الإعلان. ولكن هذا ليس ضروريًا. يمكنك إعلان المتغير وتحديد نوعه في جملة واحدة، ثم تهيئته في جملة أخرى في البرنامج.
var language: String // تخصيص متغير من نوع String ... .. ... language = "French" // تخصيص المتغير val score: Int // تخصيص متغير من نوع Int ... .. ... score = 95 // تخصيص المتغير
إليك بعض الأمثلة الخاطئة:
var language // خطأ language = "French"
في هذا السياق، لم يتم تحديد نوع المتغير language بشكل واضح، ولا تم تخصيص المتغير أثناء عملية التخصيص.
var language: String language = 14 // خطأ
في هذا السياق، نحاول تخصيص قيمة 14 (قيمة عددية) لمتغير من نوع مختلف (String)، مما يؤدي إلى ارتطام.
val(مرجع غير قابل للتغيير) - لا يمكن تغيير المتغيرات التي تم تخصيصها باستخدام كلمة المفتاح val بعد التخصيص. إنها تشبه متغيرات final في Java.
var(مرجع قابل للتغيير) - يمكن تغيير متغيرات تم تخصيصها باستخدام كلمة المفتاح var في وقت لاحق في البرنامج. إنها تشبه متغيرات Java التقليدية.
إليك بعض الأمثلة:
var language = "French" language = "German"
في هذا السياق، يتم إعادة تخصيص قيمة المتغير language إلى German. لأن المتغير تم تخصيصه باستخدام var، يمكن تشغيل هذا الكود بشكل مثالي.
val language = "French" language = "German" // خطأ
وفي المثال السابق، لا يمكنك إعادة تخصيص قيمة variable language إلى German لأن هذا المتغير تم تخصيصه باستخدام val.
الآن، بعد أن تعرفت على ما هو متغير Kotlin، حان وقت تعلم القيم المختلفة التي يمكن أن تأخذها متغيرات Kotlin.
Kotlin لغة ثابتة النوع تشبه Java. أي أن نوع المتغيرات معروف أثناء التجميع. على سبيل المثال،
val language: Int val marks = 12.3
في هذا السياق، يعرف المترجم أن نوع language هو Int، وأن marks هو نوع Double قبل التجميع.
يمكن تصنيف أنواع التضمين في Kotlin إلى:
رقم (رقم)
Characters (الرموز)
Booleans (البيانات الحقيقية)
Arrays (المدخلات)
أرقام Kotlin تشبه Java. هناك 6 أنواع مدمجة للعدد.
Byte
Short
Int
Long
Float
Double
مجال قيم نوع البيانات Byte يتراوح بين -128 إلى 127 (رقم عشري ثنائي ذو إشارة 8 بت).
إذا كان يمكن تحديد قيمة المتغير بين [-128،127]، يمكن استخدامه بدلاً من Int أو أنواع البيانات العددية الأخرى لتوفير الذاكرة.
funُmain(argsُ:ُArray<String>)ُ{ السطر val range: Byte = 112 println("$range") // الكود التالي يظهر خطأ. لماذا؟ // السطر val range1: Byte = 200 }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
112
مجال قيم نوع البيانات Short يتراوح بين -32768 إلى 32767 (رقم عشري ثنائي ذو إشارة 16 بت).
إذا كان يمكن تحديد قيمة المتغير بين [-32768،32767]، يمكن استخدامه بدلاً من أنواع البيانات العددية الأخرى لتوفير الذاكرة.
funُmain(argsُ:ُArray<String>)ُ{ السطر val temperature: Short = -11245 println("$temperature") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
-11245
مجال قيم نوع البيانات Int يبدأ من -231 إلى 231-1 (رقم عشري ثنائي ذو إشارة 32 بت).
funُmain(argsُ:ُArray<String>)ُ{ السطر val score: Int = 100000 println("$score") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
100000
إذا قمت بتخصيص -231 إلى 231إذا لم يتم تحديد نوع المتغير كعدد بين -1
funُmain(argsُ:ُArray<String>)ُ{ // score هو نوع البيانات Int السطر val score = 10 println("$score") }
إذا كنت تستخدم IntelliJ IDEA، يمكنك وضع مؤشر الفارغ في المتغير، ثم الضغط على Ctrl + Shift + P لعرض نوعه.
مجال قيم نوع البيانات Long يبدأ من -263 إلى 263-1 (رقم عشري ثنائي ذو إشارة 64 بت).
funُmain(argsُ:ُArray<String>)ُ{ السطر val highestScore: Long = 9999 println("$highestScore") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
9999
إذا تم تخصيص قيمة أكبر من 231-1 أو أقل من -231 قيمة العدد (لم يتم تحديد نوعها بشكل واضح)، فإن المتغير سيكون من نوع Long. على سبيل المثال،
السطر val distance = 10000000000 // متغير نصي Long
بشكلُمثيل،يمكنُكُِاستخدامُحرفُالضبطُبالمحرفِالكبيرُLُلتحديدُنوعُالمغيرِكماًLong.مثلاً
valُdistanceُ=ُ100LُـقيمةُdistanceُنوعُLong
نوعُDoubleُهوُنقاطُالسيولةُ64بكسلُالدقةُعاليةُ
funُmain(argsُ:ُArray<String>)ُ{ //ُdistanceُيكونُنوعُهُDouble valُdistanceُ=ُ999.5 println("$distance") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
999.5
نوعُFloatُهوُمزدوجُالإعدادُ32بكسلُلنقاطُالسيولةُ
funُmain(argsُ:ُArray<String>)ُ{ //ُdistanceُيكونُنوعُهُFloat valُdistanceُ=ُ19.5F println("$distance") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
19.5
يرجىُالنظرُفيُأنُنحنُاستخدمنا 19.5Fُبدلاًمنُ19.5.هذاُبسببُأنُ19.5ُمثالُDouble،لذلكُلايمكنُتخصيصُقيمةُDoubleُلنوعُFloatالمغير.
لجعلُمُبرمجُيُيعتبرُ19.5ُكماًFloat،则需要ُفيُالنهايةُاستخدامُF.
إذاًلمعرفةُقيمةُالرقمُالتيُستخدمُللتحديدُللمغيرِفيُالبرنامج،يمكنُتحديدُنوعُهُكماًNumber.
funُmain(argsُ:ُArray<String>)ُ{ varُtestُ:ُNumberُ =ُ12.2 println("$test") testُ=ُ12 //ُNumberُيتمُتحويلُذكيًاإلىُInt println("$test") testُ=ُ120L //ُNumberُيتمُتحويلُذكيًاإلىُLong println("$test") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
12.2 12 120
لتمثيلُالخطوطُفيُKotlin،يستخدمُنوعُChar.
مختلفًاًعنُJava،لايمكنُاعتبارُنوعُCharُرقماً.زيارةُهذهِالصفحةُللتعرفُعلىُالمزيد.نوعُcharُفيُJavaالمزيدُمنُالمعلومات.
funُmain(argsُ:ُArray<String>)ُ{ valُletterُ:ُChar letterُ=ُ'k' println("$letter") }
عندُتشغيلُالبرنامج،الناتجُسيكونُ:
k
فيُJava،يمكنُكُِتنفيذُالأمرُالتالي:
charُletterُ =ُ65;
لكن،الشيفرةُالتاليةُتظهرُخطأًفيُKotlin.
varُletterُ:ُCharُ =ُ65ُ//ُخطأ
نوعُBooleanُيحتويُعلىُقيمتينُممكنتين:ُtrueُأوُfalse.
funُmain(argsُ:ُArray<String>)ُ{ valُflagُ =ُtrue println("$flag") }
تستخدم القيم الحقيقية في أوامر القرار (سيتم مناقشتها في الفصول اللاحقة).
العدد هو حاوية تحتوي على نوع بيانات واحد (قيمة). على سبيل المثال، يمكنك إنشاء عدد يمكنه حمل 100 قيمة من نوع Int.
في Kotlin، يتم تمثيل الأعداد بكلاس Array. يتمتع هذا الكلاس بـ get و set الوظائف، وخصائص size وأعضاء مفيدة أخرى.
في Kotlin، يتم تمثيل السلاسل بكلاس String. مثل هذا النص المكتوب "this is a string" يتم تنفيذه كحالة من هذا الكلاس.