دروس Kotlin للمبتدئين (أمثلة)
ما هو كوتلين؟
كوتلن هي لغة برمجة مفتوحة المصدر مكتوبة بشكل ثابت وتعمل على Java الآلة الافتراضية (JVM). فهو يجمع بين البرمجة الشيئية (OOPs) والبرمجة الوظيفية في منصات غير مقيدة ومكتفية ذاتيًا ومميزة. كما أنه يتيح توأمة الوظائف من خلال رموز مصغرة. Kotlin هي لغة برمجة للأغراض العامة تم تصميمها بواسطة JetBrains.
تاريخ كوتلين
وإليك معالم مهمة من تاريخ كوتلين:
السنة | الحدث/الفعالية |
---|---|
2016 | تم إطلاق Kotlin v1.0 |
2017 | إعلان جوجل عن دعم Kotlin من الدرجة الأولى في الأندرويد |
2018 | يأتي Kotlin v1.2 مزودًا برموز إضافية للتوزيع بين JVM و Javaسيناريو |
2019 | أعلنت Google أن Kotlin هي لغة البرمجة المفضلة لديها Android مطورو التطبيق |
2021 | في 20 سبتمبر 2021، تم إطلاق الإصدار 1.5.31 من Kotlin. |
دواعي استخدام الكوتلن
فيما يلي بعض الأسباب المهمة وراء استخدام Kotlin على نطاق واسع:
- Kotlin هي لغة مكتوبة بشكل ثابت وهي سهلة القراءة والكتابة.
- لا تتطلب برامج Kotlin استخدام الفواصل المنقوطة في برامجها، مما يجعل الكود أسهل وأكثر قابلية للقراءة.
- تسمح هذه اللغة بتبادل واستخدام المعلومات من Java بطرق مختلفة. علاوة على ذلك، Java ويمكن أن يتواجد كود Kotlin في نفس المشروع.
- يهدف نظام الكتابة في Kotlin إلى إزالة NullPointerException من الكود.
- سوف يستغرق الأمر وقتًا أقل لكتابة تعليمات برمجية جديدة في Kotlin. من الأسهل نشر كود kotlin والحفاظ عليه على نطاق واسع.
مميزات الكوتلن
فيما يلي بعض ميزات Kotlin التي ستجعلك متأكدًا من مسار التقدم في لغة البرمجة.
الترميز المشذب:
Kotlin هي لغة برمجة تعتمد على OOPs حيث يمكن قطع سطر التعليمات البرمجية بنسبة تصل إلى 40% مما يجعل Kotlin خيارًا مثاليًا لتطوير البرامج أو الويب.
مفتوح المصدر:
كوتلين ل Android يستخدم JVM ويجمع بين ميزات OOPs والبرمجة الوظيفية.
التجميع السريع:
من السهل تجميع الكود عند العمل مع Kotlin مما يؤدي إلى أداء أفضل لتطوير Android، كما أنه سيوضح نوع وظيفة البيانات التي يمكن استخدامها في الكود بأكمله.
وظائف التمديد:
يمكن لـ Kotlin دعم مجموعة متنوعة من وظائف الامتداد دون إجراء أي تغييرات على الكود. فهو يساعد في جعل التعليمات البرمجية الحالية أكثر جاذبية ورائعة للمطورين.
على سبيل المثال:
Fun String.removeFirstLastChar(): String = this.substring(1, this.length -1)
سيساعد هذا الكود في تقليص الحرف الأول والأخير من السلسلة، ويمكننا تطبيقه على النحو التالي:
Val string1 = "Today is cloudy." Val string2 = string1.removeFirstLastChar()
سلامة فارغة:
في Kotlin، يميز النظام بين المراجع الخالية والمراجع غير الخالية كما هو موضح في مثال Kotlin أدناه.
على سبيل المثال، لا يمكن لمتغير السلسلة أن يحتوي على قيمة فارغة:
Var string1: String = "Today is Sunday" String1 = null // compilation error To permit null, we can adjoin the nullable variable : Var string2: String? = "Today is Sunday" String2 = null print(string2)
قابلة للتشغيل المتبادل:
يمكن استخدام كود Kotlin بواسطة Javaو Java يمكن استخدام الرموز مع Kotlin. لذا، إذا كان لديك معرفة وجه الفتاة البرمجة، من السهل التبديل إلى تطوير Kotlin. أيضًا، إذا كانت هناك بعض التطبيقات المكتوبة فيها Java، فيمكن استخدامها مع بيئة Kotlin.
أدوات قوية:
اعجاب Javaيمكن أيضًا كتابة كود Kotlin باستخدام IDE أو باستخدام واجهة سطر الأوامر. من السهل العمل مع IDE، كما يتم تقليل الأخطاء النحوية بشكل كبير. وفي الوقت نفسه، عند العمل باستخدام واجهة سطر الأوامر، يجب تجميع التعليمات البرمجية أولاً.
طاقم ذكي:
يساعد الصب الذكي بشكل أساسي على تقليل تكاليف التطبيق وتحسين سرعته أو أدائه. يعمل على إدارة كفاءة التعليمات البرمجية باستخدام نوع النوع أو القيم غير القابلة للتغيير.
على سبيل المثال، إذا تم تحديد السلسلة، فيمكن العثور على طولها وعددها بمساعدة وظيفة Smart Cast:
Val string1: Any = "Today is Monday" when(string1) { is String -> string1.length Is Int -> string1.inc() }
انخفاض تكلفة التبني:
تُفضل Kotlin من قبل الشركات بسبب تكلفة اعتمادها الضائعة. والأهم من ذلك، أنه من السهل التعلم من قبل المطورين، خاصة الذين لديهم خلفية برمجية.
إعداد بيئة Kotlin
فيما يلي الخطوات التي تساعدك في إعداد بيئة عمل عن طريق تثبيت Kotlin.
الخطوة 1) التثبيت Java
كما ناقشنا سابقًا أن لغة Kotlin مبنية على ذلك Java، لذلك عليك التثبيت Java أولاً عند التخطيط لاعتماد Kotlin. الرجوع لدينا Java دروس التثبيت.
الخطوة 2) التثبيت Java ايديس
ولحسن الحظ، هناك متعددة Java ايديس للإختيار من. لقد قدمنا هنا روابط التنزيل لتسهيل الأمور عليك.
في هذا البرنامج التعليمي Kotlin، سوف نستخدم Eclipse.
الخطوة 3) تثبيت Kotlin
لتثبيت Kotlin في Eclipse، انتقل إلى قسم المساعدة في Eclipse وانقر فوق Eclipse خيار السوق.
الآن، اكتب كلمة Kotlin الأساسية في مربع البحث. انقر فوق خيار "انتقال" لعرض قائمة المكونات الإضافية. سيعطيك رابطًا للمكون الإضافي Kotlin، تحتاج إلى تثبيت المكون الإضافي من الرابط الموضح.
الرجاء إعادة تشغيل Eclipse IDE، بمجرد اكتمال التثبيت. يمكنك العثور على رمز الاختصار في الزاوية اليمنى العليا Eclipse بيئة تطوير متكاملة. إنها طريقة الوصول السريع.
طريقة أخرى للوصول إلى Kotlin في Eclipse IDE هو الذهاب إلى Windows، Perspectives، افتح Perspectives، ثم اختر خيار Others. هنا، يمكنك التحقق من قائمة المكونات الإضافية التي تم تثبيتها لاحقًا، كما هو موضح أدناه.
بمجرد التحقق من تثبيت Kotlin، فلنقم بإنشاء برنامج Kotlin الأول في الخطوة التالية.
الخطوة 4) برنامج Kotlin الأول
ابدأ بمشروعك الأول في Kotlin. من القائمة "ملف"، اختر الخيار "جديد"، ثم حدد خيارًا آخر وابدأ بمشروع Kotlin جديد من القائمة.
الآن، عليك تحديد اسم للمشروع، وأنت جاهز للعمل مع Kotlin.
مع هذه الخطوات البسيطة، أصبح التنزيل سهلاً Eclipse وKotlin على نظامك واكتب برنامج Kotlin الأول لك على الفور.
Archiبنية كوتلين
إن البنية التحتية المبنية بشكل جيد مهمة لتطبيق ما لتوسيع نطاق ميزاته وتلبية توقعات قاعدة المستخدمين النهائيين. تتمتع Kotlin ببنية خاصة بها ومميزة لتخصيص الذاكرة والحصول على نتائج عالية الجودة للمطورين والمستخدمين النهائيين.
تعمل البرامج الفرعية والفئات في Kotlin على تصميم النواة بطريقة تقلل من إنتاج التعليمات البرمجية النمطية، وتعزز الأداء، وتعزز الكفاءة. هناك مجموعة متنوعة من السيناريوهات حيث يمكن لمترجم Kotlin أن يتفاعل بشكل مختلف، وخاصة عندما يكون مخصصًا لأنواع مختلفة من اللغات.
في مخطط الهندسة المعمارية، من الواضح أن تنفيذ الكود يتم في ثلاث خطوات سهلة.
- في الخطوة الأولى، تتم إضافة ملف ".kt" أو ملف kotlin إلى المترجم.
- في الخطوة الثانية، يقوم مترجم Kotlin بتحويل الكود إلى كود بايت.
- في الخطوة الثالثة، يتم إدخال الرمز الثانوي Java آلة افتراضية ويتم تنفيذه بواسطة JVM.
عندما يتم تشغيل زوج من الملفات المشفرة بالبايت على JVM، فإنهم يشعلون الاتصال المتبادل فيما بينهم، وهذا هو السبب في أن الميزة في Kotlin تسمى قابلية التشغيل البيني لميلاد java ook
ظهور كوتلين ل Javaيحدث النص عندما يستهدف Kotlin Javaالنصي.
عندما Javaتم اختيار هدف البرنامج النصي، ثم تم سكب أي كود Kotlin الذي يعد جزءًا من المكتبة التي تعمل مع Kotlin Javaالنص. ومع ذلك، Java يتم استبعاد مجموعة أدوات التطوير (JDK) أو أي مكتبة Java مستخدمة.
لا يتم أخذ ملف غير Kotlin في الاعتبار أثناء هذه العملية. أثناء الاستهداف Javaيتم تحويل ملف البرنامج النصي .kt إلى ES5.1 بواسطة مُجمِّع Kotlin لتوليد كود متسق لـ Javaيسعى مُجمِّع Kotlin إلى تحقيق حجم إخراج مثالي، والتوافق مع الوحدة النمطية الموجودة، والوظيفة نفسها مع المكتبة القياسية، والإخراج الذي Javaنص قابل للقراءة.
يتضح من المناقشة أن مترجمي Kotlin يمكنهم إنشاء كود أكثر كفاءة وكفاءة واستقلالية يؤدي إلى منتج برمجي عالي الأداء.
متغير كوتلين
يتم استخدام المتغيرات لتخزين البيانات ليتم معالجتها والرجوع إليها في البرنامج. إنها في الأساس وحدة تخزين البيانات ووضع العلامات عليها وتنتظر اسمًا مستعارًا توضيحيًا بحيث يكون البرنامج سهل القراءة وسهل الفهم. بمعنى آخر، يمكننا القول أن المتغيرات هي حاويات لجمع المعلومات.
في Kotlin، يجب الإعلان عن جميع المتغيرات. ومع ذلك، إذا لم يتم الإعلان عن أي متغير، فسيظهر خطأ في بناء الجملة. كما أن إعلان المتغير يحدد نوع البيانات التي نسمح بتخزينها في المتغير. في Kotlin، يمكن تعريف المتغيرات باستخدام الكلمات المفتاحية val وvar. فيما يلي بناء جملة إعلان المتغيرات في Kotlin:
Var day = "Monday" Var number = 3
لقد قمنا هنا بإعلان المتغير المحلي day وقيمته هي "Monday' ونوعه String ورقم متغير محلي آخر قيمته 3 ونوعه Int لأن الحرفي هنا من النوع الصحيح الذي هو 3.
يتم عادةً الإعلان عن المتغيرات المحلية وتهيئتها في نفس الوقت. يمكننا أيضًا إجراء عمليات معينة أثناء تهيئة متغير Kotlin.
يمكننا إجراء عملية على متغير من نفس نوع البيانات، كما هو الحال هنا، num1 وnum2 كلاهما من نفس نوع البيانات وهو Int، بينما day من نوع بيانات string. وبالتالي، سيظهر خطأ. إليك تقنية أخرى لكيفية تعريف المتغيرات في Kotlin.
var day : String = "GURU99" var num : Int = 100
دعونا نرى كيف تختلف الكلمات الرئيسية var و val عن بعضها البعض.
فار :
Var يشبه المتغير العام المستخدم في أي لغة برمجة ويمكن استخدامه عدة مرات في برنامج واحد. علاوة على ذلك، يمكنك تغيير قيمته في أي وقت في البرنامج. ولذلك، فإنه يعرف باسم المتغير القابل للتغيير.
فيما يلي مثال للمتغير القابل للتغيير في Kotlin:
var num1 = 10 Var num2 = 20 Num1 = 20 print(num1 + num2) // output : 40
هنا يتم استبدال قيمة num1 التي تبلغ 20 بالقيمة السابقة num1 وهي 10. وبالتالي فإن ناتج num1 + num2 هو 40 بدلاً من 30.
قيمة:
القيمة Val هي مثل المتغير الثابت، ولا يمكنك تغيير قيمتها لاحقًا في البرنامج، ولا يمكن تعيينها عدة مرات في برنامج واحد ولا يمكن استخدامها إلا مرة واحدة في برنامج معين. وبالتالي، تُعرف باسم المتغير غير القابل للتغيير.
فيما يلي مثال لبرنامج Kotlin للمتغيرات غير القابلة للتغيير في Kotlin:
Val num1 = 10 Var num2 = 20
هنا، لا يمكن استبدال قيمة num1 التي هي 10 بالقيمة الجديدة num1 وهي 20، لأنها من نوع val الثابت. وبالتالي يكون الناتج 30 بدلا من 40.
ملاحظات: في Kotlin، تُفضل المتغيرات غير القابلة للتغيير على المتغيرات القابلة للتغيير.
أنواع البيانات في كوتلين
أنواع البيانات عبارة عن مجموعة من القيم ذات الصلة وتصف العمليات التي يمكن إجراؤها عليها. وعلى غرار لغات البرمجة الأخرى، تحتوي Kotlin أيضًا على مجموعة محددة مسبقًا من أنواع البيانات مثل Int وBoolean وChar و Double، الخ.
في Kotlin، يعتبر كل نوع بيانات بمثابة كائن.
الآن في هذا البرنامج التعليمي الأساسي لـ Kotlin، دعنا نتعمق أكثر في أنواع البيانات المحددة مسبقًا المستخدمة في Kotlin.
Numbers :
تقدم Kotlin مجموعة من أنواع البيانات المضمنة المعروفة باسم الأرقام، والتي يتم تصنيفها إلى فئات فرعية مثل الأعداد الصحيحة والفاصلة العائمة Numbers.
الأعداد الصحيحة :
الأعداد الصحيحة هي فئة من الأرقام التي لها أربعة أنواع:
النوع | الحجم (بت) | قيمة دقيقة | قيمة الحد الأقصى |
---|---|---|---|
بايت | 8 | -128 | 127 |
قصير | 16 | -32768 | 32767 |
الباحث | 32 | -2,147,483,648،231 (-XNUMX) | 2,147,483,647 (231-1) |
طويل | 64 | -9,223,372,036,854,775,808،263 (-XNUMX) | 9,223,372,036,854,775,807 (263-1) |
النقطة العائمة Numbers :
النقطة العائمة Numbers هي الأرقام غير الصحيحة التي تحمل بعض القيم العشرية.
Float: Float عبارة عن قيمة فاصلة عائمة أحادية الدقة بحجم 32 بت.
مثال: فار: Float x = 3.25600
Double: Double هي قيمة عائمة ذات دقة مزدوجة 64 بت.
مثال: فار: Double ص = 2456.345587
القيم المنطقية :
يعتبر نوع البيانات المنطقية في Kotlin مهمًا لتمثيل القيم المنطقية. هناك قيمتان محتملتان فقط في القيمة المنطقية إما صحيحة أو خاطئة.
على سبيل المثال: يوم فال = صحيح
فال day2 = خطأ
حرف :
يتم تمثيل الأحرف في Kotlin بمساعدة الكلمة الأساسية المسماة char. في Kotlin، تمثل علامات الاقتباس المفردة إعلان char. في Java، تُستخدم char أحيانًا كأرقام وهو أمر غير ممكن في Kotlin.
على سبيل المثال:
val onechar = 'x' print(onechar) // output : x Val onedigit = '7' print(onedigit) // output : 7
تحويل نوع Kotlin أو صب نوع Kotlin
تحويل النوع هو إجراء لتحويل نوع واحد من متغير البيانات إلى متغير نوع بيانات آخر. إنه كبير جدًا، ويُعرف أيضًا باسم Type Casting.
على نحو بارز، في Javaيتم دعم النوع الضمني لتحويل النوع أو النوع الضمني من نوع البيانات الأصغر إلى نوع البيانات الأكبر.
For Example : int abc = 15; Long bcd = abc; // compiles successfully
ومع ذلك، في kotlin، لا يتم دعم التحويل الضمني لنوع بيانات أصغر إلى نوع بيانات أكبر على الإطلاق، حيث لا يمكن تحويل نوع البيانات int إلى نوع بيانات طويل ضمنيًا.
For Example : var abc = 15 Val bcd : Long = abc // error
ومع ذلك، في Kotlin، يتم تحويل النوع بشكل صريح. هنا تأتي إرشادات الوظائف المساعدة التي توجه تحويل متغير نوع بيانات إلى آخر.
هناك وظائف مساعدة معينة مملوكة مسبقًا لتحويل نوع بيانات إلى آخر:
إلىInt()
toByte ()
إلىShort()
توشار ()
إلى طويل ()
toFloat ()
إلىDouble()
For Example : var abc = 15 Val bcd : Long = abc.toLong() // compiles successfully
كوتلن Operaالاختصاصات
Operaتعد tors أحرفًا أو رموزًا مهمة وخاصة تضمن العمليات في المتغيرات التي تحتوي على متغيرات وقيم. في Kotlin، توجد مجموعة من المشغلات التي تُستخدم في عمليات مختلفة مثل العمليات الحسابية وعمليات التعيين وعمليات المقارنة وما إلى ذلك.
علم الحساب Operaتورس :
تُستخدم العمليات الحسابية في عمليات الجمع والطرح والضرب والقسمة والمعامل.
المُشغل | معنى |
---|---|
+ | الإضافة (تُستخدم أيضًا لتسلسل السلسلة) |
- | طرح Operaتور |
* | تضاعف Operaتور |
/ | تقسيم Operaتور |
% | معام Operaتور |
على سبيل المثال:
var x = 10 var y = 20 var z = ( ( x + y ) * ( x + y ) ) / 2
هنا مخرجات الكود التالي هي 45.
مقارنة Operaتورس :
يستخدم عامل المقارنة لمقارنة قيمتين أو متغيرين أو رقمين. يتم استخدامه مع الرمز الأكبر من ( > )، والرمز الأصغر من ( < ) والرمز المتساوي ( == )، والرمز غير المتساوي ( != )، والرمز الأكبر من المتساوي ( >= )، والرمز الأصغر من المتساوي ( <= ). وينتج عنه دائمًا صواب أو خطأ.
على سبيل المثال:
var x = 10 Var y =20 Var z = x < y // Output : true Var w = x > y // Output : false Var m = x == y // Output : false
مهمة Operaتورس :
مهمة Operaتُستخدم tors لتعيين القيم التي يتم إجراء العمليات الحسابية عليها. وتُستخدم مع الرموز مثل +=، -=، *=، /=، %=.
على سبيل المثال:
var x = 10 var y = 20 var x + = y // Output : 30 Var y - = x // Output : 10 Var x * = y // Output : 200
الزيادة والنقصان Operaتورس :
تُستخدم عوامل الزيادة والنقصان لزيادة ونقصان قيم المتغير أو الرقم. وتُستخدم بمساعدة رموز مثل ++ و—.
هناك نوعان من الزيادة والنقصان وهما الزيادة المسبقة ++a، والزيادة اللاحقة a++، والنقصان المسبق –b، والنقصان اللاحق b–.
على سبيل المثال:
var a = 10 var b = 20 var c = a++ // Output: 11 var d = b— //Output : 19
مصفوفات كوتلن
المصفوفة هي مجموعة متجانسة من أنواع البيانات وهي واحدة من أهم أنواع البيانات الأساسية التي تستخدم لتخزين نفس أنواع البيانات في موقع الذاكرة المتجاورة. يعد المصفوفة مهمًا لتنظيم البيانات بأي لغة برمجة بحيث يسهل البحث أو الفرز عن البيانات المتعددة المخزنة في مكان واحد.
في Kotlin، المصفوفات عبارة عن تعاون قابل للتغيير لنفس أنواع البيانات بدلاً من كونها أنواع بيانات أصلية.
فيما يلي بعض خصائص المصفوفة في Kotlin
- لا يمكن تغيير حجم المصفوفة بمجرد الإعلان عنها.
- المصفوفات في Kotlin قابلة للتغيير.
- يتم تخزين المصفوفات في مواقع الذاكرة المتجاورة.
- يمكن الوصول إلى المصفوفة بمساعدة الفهارس مثل a[1] وa[2] وما إلى ذلك.
- يبدأ فهرس المصفوفة بالصفر وهو [0].
في Kotlin، يمكن تعريف المصفوفة بطريقتين مختلفتين
باستخدام الدالة arrayOf() :
في Kotlin، هناك استخدام كبير لوظائف المكتبة. إحدى وظائف المكتبة هذه هي الدالة arrayOf()، والتي تُستخدم لتعريف مصفوفة عن طريق تمرير قيم المتغيرات إلى الوظيفة.
على سبيل المثال: تعريف النوع الضمني للصفيف باستخدام الدالة arrayOf()
val x = arrayOf(1,2,3,4,5,6,7,8,9)
على سبيل المثال: اكتب إعلان الصفيف بشكل صريح باستخدام الدالة arrayOf().
Val y = arrayOf<Int>(1,2,3,4,5,6,7,8,9)
باستخدام منشئ المصفوفة :
في Kotlin، هناك فئة باسم Array. لذلك، من الممكن استخدام مصفوفة من المُنشئ لإنشاء مصفوفة. تحتوي المصفوفة الموجودة في المُنشئ على معلمتين رئيسيتين.
ما هو فهرس المصفوفة في Kotlin؟
الدالة التي يكون فيها فهرس المصفوفة مقبولاً لإرجاع القيمة الأولية للفهرس.
على سبيل المثال:
val abc = Array(7 , { i -> i*1})
هنا، قيمة المصفوفة هي 7 ويتم استخدام تعبير لامدا لتهيئة قيم العنصر.
هناك أيضًا طرق مختلفة للوصول إلى المصفوفات وتعديلها باستخدام وظائف معينة. لذلك، هناك وظيفتان عضويتان get() وset()، يتم استخدامهما للوصول إلى كائنات مصفوفة الفئة.
على سبيل المثال:
val x = arrayOf(10,20,30,40,50,60,70,80,90) val y = x.get(0) // Output 10
هنا، الإخراج هو 10 لأن القيمة عند الفهرس 0 للصفيف هي 10
ملحوظة: get() يأخذ قيمًا مفردة فقط
على سبيل المثال:
val x = arrayOf(10,20,30,40,50,60,70.80.90) val y = x.set(2, 3) //
الإخراج : 30 40
هنا، يكون الإخراج 30 و40 نظرًا لأن القيمة عند الفهرس 2 للمصفوفة هي 30 وفي الفهرس 3 تكون 40.
ملاحظة: تأخذ الدالة set() قيمًا متعددة للمصفوفة.
سلاسل كوتلين
السلسلة هي نوع بيانات أساسي في أي لغة برمجة. السلسلة ليست سوى سلسلة من الأحرف. تمثل فئة السلسلة سلاسل الأحرف. في Kotlin، جميع السلاسل هي كائنات من فئة السلسلة، وهو ما يعني أن سلسلة حرفية يتم تنفيذها كمثيلات للفئة.
بناء الجملة:
Val myString = "Hey there!"
مجموعة كوتلين
تحتوي المجموعة على عدة كائنات من نفس النوع، وتسمى هذه الكائنات الموجودة في المجموعة بالعناصر أو العناصر. يمكن أن يساعد التجميع في تخزين البيانات واسترجاعها ومعالجتها وتجميعها.
أنواع المجموعات:
جمع غير قابل للتغيير
يدعم هذا النوع من المجموعات وظائف القراءة فقط. ولا يمكن تعديل عناصره.
تشمل الطرق:
- القائمة - listOf() وlistOf ()
- مجموعة – مجموعة ()
- الخريطة – مابأوف ()
مجموعة قابلة للتغيير
وهو يدعم كلاً من وظائف القراءة والكتابة.
تشمل الطرق
- القائمة - mutableListOf() وarrayListOf() وArrayList
- تعيين - mutableSetOf ()، hashSetOf ()
- خريطة - mutableMapOf ()، hashMapOf () وHashMap
وظائف كوتلين
الوظائف في أي لغة برمجة هي مجموعة من العبارات المتشابهة المخصصة لأداء مهمة محددة. تسمح الوظائف للبرنامج بتقسيمه إلى كتل تعليمات برمجية صغيرة مختلفة. يؤدي هذا التقسيم للكود إلى زيادة إمكانية قراءة الكود وإمكانية إعادة استخدامه ويجعل البرنامج سهل الإدارة.
كما تُعرف Kotlin بأنها لغة مكتوبة بشكل ثابت. هنا، يتم استخدام الكلمة الأساسية "fun" للإعلان عن وظيفة. في Kotlin، هناك نوعان من الوظائف التي تعتمد فقط على توفرها في المكتبة القياسية أو تعريف المستخدم. هم:
- وظيفة المكتبة القياسية
- وظيفة محددة من قبل المستخدم
الآن، دعونا نناقشها بالتفصيل مع أمثلة كود Kotlin.
وظيفة المكتبة القياسية
إنها وظائف مكتبة مدمجة يمكن تعريفها ضمنيًا ومتاحة للاستخدام.
على سبيل المثال 2:
fun main(args: Array<String>){ var number = 9 var result = Math.sqrt(number.toDouble()) print("$result") }
الإخراج:
3.0
sqrt() هي دالة محددة في المكتبة والتي تقوم بإرجاع الجذر التربيعي لرقم.
تقوم الدالة print() بطباعة الرسالة إلى دفق الإخراج القياسي.
وظيفة معرّفة من قبل المستخدم
كما يوحي الاسم، عادةً ما يتم إنشاء هذه الوظائف بواسطة المستخدمين، ويمكن استخدامها للبرمجة المتقدمة.
هنا، يتم الإعلان عن الوظائف باستخدام الكلمة الأساسية "fun".
على سبيل المثال 3:
fun functionName(){ //body of the code }
هنا، نستدعي الدالة لتشغيل الأكواد داخل الجسم functionName()
أمثلة على وظائف Kotlin:
fun main(args: Array<String>){ sum() print("code after sum") } fun sum(){ var num1 =8 var num2 = 9 println("sum = "+(num1+num2)) }
الإخراج:
المجموع = 17
الكود بعد المبلغ
معالجة الاستثناءات في Kotlin
يتم تعريف الاستثناء في البرمجة على أنه مشكلة وقت التشغيل التي تحدث في البرنامج، مما يؤدي إلى إنهائه. يمكن أن تحدث هذه المشكلة بسبب انخفاض مساحة الذاكرة، أو نفاد المصفوفة، أو ظروف مثل القسمة على صفر. للحد من هذه الأنواع من المشكلات في تنفيذ التعليمات البرمجية، يتم استخدام معالجة الاستثناءات.
يتم تعريف معالجة الاستثناءات على أنها التقنية التي تعالج مشكلات وقت التشغيل وتحافظ أيضًا على تدفق البرنامج أثناء التنفيذ.
يستخدم Kotlin تعبير "رمي" لرمي كائن استثناء. هنا جميع فئات الاستثناء هي من نسل فئة Throwable.
رمي MyException ("الاستثناء")
هناك أربعة أنواع من الاستثناءات في معالجة الاستثناءات. هم:
- حاول - تحتوي هذه الكتلة على عبارات قد تؤدي إلى إنشاء الاستثناء. ويتبعه دائمًا إما الصيد أو أخيرًا أو كليهما.
- قبض - يلتقط استثناءً تم طرحه من كتلة المحاولة.
- أخيرًا - يتحقق دائمًا مما إذا كان الاستثناء قد تمت معالجته أم لا.
- رمي - يتم استخدامه لرمي استثناء بشكل صريح.
حاول التقاط:
في كتلة حاول الالتقاط في معالجة الاستثناءات، تحتوي كتلة المحاولة على التعليمات البرمجية، والتي قد تطرح استثناءً وتلتقط كتلة الالتقاط التعبير وتتعامل معه.
بناء جملة كتلة محاولة الصيد:
try{ //code with exception }catch(e: SomeException){ //code handling exception }
بناء جملة المحاولة مع الحظر أخيرًا
try{ //code with exception }finally{ // code finally block }
وأخيرا:
في Kolin، أخيرًا يتحقق الحظر دائمًا مما إذا كان الاستثناء قد تمت معالجته أم لا، مما يجعله بيانًا مهمًا جدًا لمعالجة الاستثناء.
على سبيل المثال 4:
في مقتطف التعليمات البرمجية هذا، يحدث الاستثناء، وتتم معالجته.
fun main (args: Array<String>){ try { val data = 9/ 0 println(data) } catch (e: ArithmeticException) { println(e) } finally { println("finally block executes") } println("write next code") }
الإخراج:
java.lang.ArithmeticException: / by zero finally block executes write next code
يرمي:
كتلة الرمي تطرح استثناءً صريحًا. علاوة على ذلك، يتم استخدامه لطرح استثناءات مخصصة.
بناء الجملة:
Throw SomeException() Throw SomeException()
على سبيل المثال:
fun main(args: Array<String>) { try{ println("Exception is not thrown yet") throw Exception("Everything is not well") println("Exception is thrown") } catch(e: Exception){ println(e) } finally{ println("You can't ignore me") } }
الإخراج:
السلامة الخالية من Kotlin
تميز أنواع الأنظمة التي تدعم Kotlin بشكل رئيسي بين المراجع التي يمكن أن تحمل مراجع لاغية، وتلك التي لا يمكن أن تحمل مراجع لاغية. Kotlin هي لغة أمان فارغة تهدف إلى إزالة استثناء المؤشر الفارغ أو المرجع الفارغ من التعليمات البرمجية، والذي يُعرف عمدًا باسم A Billخطأ أيون الدولار.
حجر العثرة الأكثر تقليدية للكثيرين لغات البرمجة تتمثل المشكلة في أنه عند الوصول إلى أحد أعضاء مرجع فارغ، ينتج عن ذلك NullPointerException، والذي قد يكون بسبب عامل !! أو استخدام هذا المنشئ في مكان آخر وتمريره في نقطة أخرى من التعليمات البرمجية. تتطلب الخاصية القابلة للعدم تأكيدًا للتحقق من العدم في كل مرة قبل استخدامها.
في Kotlin، يميز النظام بين المراجع الخالية والمراجع غير الخالية.
على سبيل المثال، لا يمكن لمتغير السلسلة أن يحتوي على قيمة فارغة:
على سبيل المثال 5:
fun main(args: Array<String>){ var x: String = "GURU99 is the only place where you will get maximum technical content!" // Not Null by default println("x is : $x") // You cannot assign null variable to not-nullable variables // a=null // it will give compilation error var y: String? = "Thanks for visiting GURU99" // Nullable Variable println("y is : $y") y = null println("y is : $y") }
الإخراج:
كوتلين عفوًا
يتيح نهج البرمجة الموجهة للكائنات تقسيم مقتطفات التعليمات البرمجية المعقدة إلى كتل تعليمات برمجية أصغر عن طريق إنشاء كائنات. تتقاسم هذه الكائنات خاصيتين متبادلتين: الحالة والسلوك.
فيما يلي بعض عناصر OOPs التي سنناقشها مع أمثلة كود Kotlin:
- فئة وكائنات
- الصانعين
- وراثة
- فئة مجردة
الطبقة في كوتلين
أولاً، قبل إنشاء كائن، نحتاج إلى تحديد فئة تُعرف أيضًا باسم المخطط الخاص بالكائن.
بناء الجملة:
class ClassName { // property // member function ... .. ... }
الكائنات في كوتلين
أثناء تحديد فئة، نحدد فقط مواصفات الكائن، ولا يتم تخصيص أي معلمة أخرى مثل الذاكرة أو التخزين.
بناء الجملة:
var obj1 = ClassName()
بناة في كوتلين
المنشئ هو وسيلة لتهيئة خصائص الفئة. إنها وظيفة عضو يتم استدعاؤها عند إنشاء كائن. ولكن في Kotlin، يعمل الأمر بشكل مختلف.
هناك نوعان من المنشئات في Kotlin:
المنشئ الأساسي: الطريقة الأمثل لتهيئة الفصل الدراسي
بناء الجملة:
class myClass(valname: String,varid: Int) { // class body }
المنشئ الثانوي: يساعد على إضافة منطق التهيئة
الوراثة Kotlin
يحدث الوراثة عندما تكتسب الفئة الفرعية بعض خصائص الفئة الأصلية. يُسمح بالميراث عندما يكون لفئتين أو أكثر نفس الخصائص.
بناء الجملة:
open class ParentClass(primary_construct){ // common code }class ChildClass(primary_construct): ParentClass(primary_construct_initializ){ // ChildClass specific behaviours }
فئة مجردة في كوتلين
الفئة المجردة هي فئة لا يمكن إنشاء مثيل لها، ولكن يمكننا أن نرث فئات فرعية منها. يتم استخدام الكلمة الأساسية "abstract" للإعلان عن فئة مجردة.
على سبيل المثال 6:
open class humanbeings { open fun Eat() { println("All Human being Eat") } } abstract class Animal : humanbeings() { override abstract fun Eat() } class Cat: Animal(){ override fun Eat() { println("Cats also loves eating") } } fun main(args: Array<String>){ val lt = humanbeings() lt.Eat() val d = Cat() d.Eat() }
الإخراج:
حاضر ومستقبل Kotlin
الحاضر:
- العديد من الشركات مثل Netflixيستخدم كل من Pinterest وCorda لغة Kotlin لإنشاء ملفات قوية Android تطبيقات.
- في فترة قصيرة مدتها عام واحد، 2016 إلى 2017، أصبحت Kotlin ذات شعبية كبيرة بفضل ميزات البرمجة المذهلة.
- في عام 2017، أعلنت Google عن Kotlin كلغة برمجة رسمية لتطوير Android.
- يمكنك استبداله بسرعة Java قم بكتابة الكود باستخدام Kotlin لأنه متوافق بنسبة 100% مع Java Android.
المستقبل:
- تطوير الألعاب عبر المنصات
- تطوير تطبيقات الهاتف المحمول عبر الأنظمة الأساسية
- البرمجة النصية من جانب الخدمة والخدمات الصغيرة
- تعلم الآلة & تحليل البيانات
الملخص
- Kotlin هي لغة برمجة اقترحتها JetBrains في عام 2010 للتطبيقات متعددة المنصات بموجب ترخيص Apache 2.0.
- اسم Kotlin مشتق من اسم جزيرة Kotlin في مراسلات مماثلة لـ Java بعد اسم جزيرة تسمى جاوة.
- في عام 2016، تم إطلاق الإصدار الأول من Kotlin v1.0
- لا تتطلب برامج Kotlin استخدام الفواصل المنقوطة في برامجها، مما يجعل الكود أسهل وأكثر قابلية للقراءة.
- كوتلين ل Android Developers هي لغة برمجة تعتمد على OOPs حيث يمكن قطع سطر التعليمات البرمجية بنسبة تصل إلى 40٪ مما يجعل Kotlin خيارًا مثاليًا لتطوير البرامج أو الويب.
- في Kotlin، يجب الإعلان عن جميع المتغيرات باستخدام الكلمات الأساسية var و val.
- على غرار لغات البرمجة الأخرى، تمتلك Kotlin أيضًا مجموعة محددة مسبقًا من أنواع البيانات مثل Int وBoolean وChar و Double، الخ.
- في Kotlin، هناك مجموعة من المشغلات التي يتم استخدامها في عمليات مختلفة مثل العمليات الحسابية، وعمليات التعيين، وعمليات المقارنة، وما إلى ذلك.
- في Kotlin، المصفوفات عبارة عن تعاون قابل للتغيير لنفس أنواع البيانات بدلاً من كونها أنواع بيانات أصلية.
- في Kotlin، يتم تعريف المصفوفات باستخدام طريقتين - ArrayOF () والمنشئين.
- Kotlin هي لغة أمان خالية تساعد على إزالة استثناء المؤشر الفارغ أو المرجع الفارغ من التعليمات البرمجية، وهو ما يسمى عمدا A Billخطأ أيون الدولار.