English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
إذا كنت مبرمجًا سابقًا في Java وكنت تعرف الأساسيات في لغة Java، فإنك ستعلم قواعد Scala الأساسية بسرعة.
الفرق الأكبر بين Scala وJava هو أن نقطة الوصل في نهاية الجملة في Scala ليست إلزامية.
يمكننا اعتبار برنامج Scala تجمع من الأشياء، التي تتبادل الرسائل عبر دعوات إلى الطرق. دعونا نحاول فهم مفاهيم التصنيف، الأشياء، الطريقة، والمتغيرات المثالية:
الأشياء - الأشياء لها خصائص وأفعال. على سبيل المثال: الخصائص المادية للكلب هي: اللون، الاسم، والأفعال مثل: الصراخ، الجري، الأكل وما إلى ذلك. الأشياء هي أمثلة على التصنيف.
التصنيف - التصنيف هو抽象 من الأشياء، والأشياء هي أمثلة ملموسة من التصنيف.
المتدخل - السلوك الأساسي للوصف للمتدخل، يمكن أن تحتوي الفئة على عدة متداخلين.
الحقول - كل كائن له مجموعة متفردة من المتغيرات المثبتة، وهي الحقول. يتم إنشاء خصائص الكائن من خلال تعيين القيم للحقول.
البرمجة التفاعلية لا تحتاج إلى إنشاء ملف سكربت، يمكن التشغيل عبر الأمر التالي:
$ scala مرحبًا بك في Scala إصدار 2.11.7 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31). أدخل تعبيرات لتقييمها. النوع: help للحصول على مزيد من المعلومات. scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! scala>
يمكننا أيضًا تشغيل الكود عبر إنشاء ملف HelloWorld.scala، ويكون الكود كالتالي:
object HelloWorld { /* هذا هو برنامج Scala الخاص بي * البرنامج التالي سيُنتج 'Hello World!' */ def main(args: Array[String]) { println("Hello, world!") // يُنتج Hello World } }
الآن سنستخدم الأمر scalac لتجميعها:
$ scalac HelloWorld.scala $ ls HelloWorld$.class HelloWorld.scala HelloWorld.class
بعد التجميع، يمكننا رؤية أن ملف HelloWorld.class تم إنشاؤه في الدليل، ويمكن تشغيل هذا الملف على محرك Java Virtual Machine (JVM).
بعد التجميع، يمكننا استخدام الأمر التالي لتشغيل البرنامج:
$ scala HelloWorld Hello, world!
يجب الانتباه إلى النقاط التالية عند استخدام النحو الأساسي لScala:
الفرق بين الكتابة الكبيرة والصغيرة - Scala حساس للكتابة الكبيرة والصغيرة، مما يعني أن Hello وhello سيكون لهما معاني مختلفة في Scala.
اسم الفئة - يجب أن يكون أول حرف من كل اسم فئة كبيرًا.
إذا كنت بحاجة إلى استخدام كلمات متعددة لإنشاء اسم فئة، يجب أن تكون أول حرف من كل كلمة كبيرًا.
مثال:class MyFirstScalaClass
اسم الطريقة - الكل من اسم الطريقة يجب أن يبدأ بحرف صغير.
إذا تم استخدام كلمات متعددة لإنشاء اسم الطريقة، يجب أن تكون أول حرف من كل كلمة كبيرًا.
مثال:def myMethodName()
اسم ملف البرنامج - يجب أن يكون اسم ملف البرنامج مطابقًا تمامًا لاسم الكائن (ليس ضروري في الإصدارات الجديدة، ولكن يُنصح باتباع هذه العادة).
عند حفظ الملف، يجب حفظه باستخدام اسم الكائن الذي يستخدمه (تذكر أن Scala يفرق بين الحروف الكبيرة والصغيرة)، واضعًا ".scala" كامتداد للملف. (إذا لم يكن اسم الملف مطابقًا لاسم الكائن، لن يتم ترميز البرنامج).
مثال: افترض أن "HelloWorld" هو اسم الكائن. يجب أن يتم حفظ هذا الملف باسم 'HelloWorld.scala'.
def main(args: Array[String]) - يبدأ تنفيذ برنامج Scala من طريقة main()، وهي جزء إلزامي من كل برنامج Scala.
يمكن استخدام نوعين من الوسمين في Scala، النصي والأرقامي.
تبدأ وسم الأرقامية بحرف أو خط سفلاء، يمكن أن يتبعها حرف أو رقم، يتم اعتبار الرمز $ كحرف في Scala. ومع ذلك، يجب تجنب استخدام وسمين يبدأان بحرف $ لأنها وسمين محفوظة يتم إنشاؤها من قبل معالج Scala، يجب تجنب استخدام وسمين يبدأان بحرف $ لتجنب الاشتباك.
تبني Scala قواعد التسمية التي تشبه قواعد Java CamelCase، تبدأ بالحرف الصغير، مثل toString. يجب أن يكون الحرف الأول من اسم الكلاس كبيرًا. بالإضافة إلى ذلك، يجب تجنب استخدام وسمين ينتهيان بالخط السفلاء لتجنب الاشتباك. الوسم الرمزي يحتوي على رمز أو أكثر، مثل +،:،?، مثل:
+ ++ ::: < ?> :->
يستخدم Scala وسمًا مكررًا في التنفيذ الداخلي، مثل:-> يستخدم $colon$minus$greater لتعريف هذا الرمز. لذا إذا كنت بحاجة إلى الوصول إلى طريقة:-> في كود Java، يجب عليك استخدام الاسم الداخلي لـ Scala $colon$minus$greater.
المعلمات المختلطة تتكون من وسم أرقامي يتبعه رمز أو أكثر، مثل unary_+ هو الاسم الداخلي لمفهوم + في Scala. وسم نصي هو النص المحدد باستخدام "، مثل `x` `yield`.
يمكنك استخدام أي وسم معتمد من "" بين أي وسمScala، يفسر Scala هذه الوسمات كوسمScala، يستخدم الاستخدام التقليدي لـ Thread.yield()، لا يمكنك استخدام Thread.yield() في Scala لأن yield هو كلمة مفتاحية في Scala، يجب عليك استخدام Thread.`yield`() لاستخدام هذه الطريقة.
الجدول التالي يبين الكلمات المحددة في سكالا، لا يمكن استخدام الكلمات التالية كمتغيرات:
abstract | case | catch | class |
def | do | else | extends |
false | final | finally | for |
forSome | if | implicit | import |
lazy | match | new | null |
object | override | package | private |
protected | return | sealed | super |
this | throw | trait | try |
true | type | val | var |
while | with | yield | |
- | : | = | => |
<- | <: | <% | >: |
# | @ |
تدعم سكالا التعليقات السطرية والمتعددة. يمكن تضمين التعليقات المتعددة، ولكن يجب أن تكون محاطة بشكل صحيح، يجب أن تتطابق علامة البداية بعلامة النهاية. يتم تجاهل التعليقات أثناء التجميع، مثل المثال التالي:
object HelloWorld { /* هذا برنامج سكالا * تعليق سطر * يوضح هذا التعليق المتعدد الأسطر */ def main(args: Array[String]) { // إدخال Hello World // هذا تعليق سطر واحد println("مرحبًا، العالم!") } }
إذا كانت سطر واحدة تحتوي فقط على مسافات أو تعليقات، فإن سكالا تعتبرها سطر فارغ وتتجاهلها. يمكن تقسيم العلامات بالمسافات أو التعليقات.
سكالا لغة تعتمد على السطر، يمكن إتمام الجملة باستخدام نقطة السطر أو إعادة التوجيه. عادة ما تكون نقطة السطر في سكالا اختيارية. يمكنك إدخالها إذا كنت ترغب في ذلك، ولكن إذا كانت هناك جملة واحدة فقط في السطر، يمكن كتابة جملة واحدة دون كتابةها. من جهة أخرى، إذا تم كتابة عدة جمل في سطر واحد، فإن نقطة السطر ضرورية. على سبيل المثال
السطر val s = "موقع التعليم الأساسي"; println(s)
استخدم سكالا كلمة المفتاح package لتعريف الملف، هناك طريقتان لتحديد الكود في سكالا:
الطريقة الأولى مثل جافا، تعريف اسم الملف في بداية الملف، ويوضع جميع الكود في هذا الملف. على سبيل المثال:
بكيتاكوم.و3كودبوككس class HelloWorld
الطريقة الثانية تشبه C#، مثل: }}
package com.w3codebox { class HelloWorld }
الطريقة الثانية، يمكنك تعريف عدة حزم في ملف واحد.
استخدم Scala الكلمة المفتاحية import لاستيراد الحزم.
import java.awt.Color // إدخال Color import java.awt._ // إدخال جميع أعضاء الحزمة def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent ... // لأن تم إدخال java.awt، يمكن تجنب الجزء الأول }
يمكن أن تظهر تعليمات الاستيراد في أي مكان وليس فقط في أعلى الملف. تأثير الاستيراد يبدأ من البداية ويصل إلى نهاية الكتلة. هذا يمكن أن يقلل من احتمالية حدوث تضارب الأسماء.
إذا كنت ترغب في إدخال بعض أعضاء الحزمة، يمكنك استخدام selector (المختار):
import java.awt.{Color, Font} // إعادة تسمية العضو import java.util.{HashMap => JavaHashMap} // إخفاء العضو import java.util.{HashMap => _, _} // تم إدخال جميع أعضاء حزمة util، ولكن تم إخفاء HashMap
ملاحظة:بالتأكيد، Scala دائمًا ما تقوم بإدخال java.lang._ و scala._ و Predef._، ويمكن أيضًا تفسير لماذا تكون الحزم التي تبدأ بـ scala. مكتوبة دون scala. عند استخدامها.