الفرق بين المراجعتين لصفحة: «Kotlin/packages»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الحزم (Packages))}}</noinclude> يبدأ الملف المصدريّ (source file) عادةً بالتصريح (declaration) عن الحز...' |
إضافة تصنيفات |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الحزم (Packages | <noinclude>{{DISPLAYTITLE:الحزم (Packages)}}</noinclude> | ||
يبدأ الملف المصدريّ (source file) عادةً بالتصريح (declaration) عن الحزم مثل:<syntaxhighlight lang="kotlin"> | يبدأ الملف المصدريّ (source file) عادةً بالتصريح (declaration) عن الحزم مثل:<syntaxhighlight lang="kotlin"> | ||
package foo.bar | package foo.bar | ||
سطر 58: | سطر 58: | ||
== مصادر == | == مصادر == | ||
* [https://kotlinlang.org/docs/reference/packages.html صفحة التعريف بالحزم في التوثيق الرسميّ للغة Kotlin] | * [https://kotlinlang.org/docs/reference/packages.html صفحة التعريف بالحزم في التوثيق الرسميّ للغة Kotlin] | ||
[[تصنيف:Kotlin]] | |||
[[تصنيف:Kotlin Packages]] |
مراجعة 03:46، 8 مارس 2018
يبدأ الملف المصدريّ (source file) عادةً بالتصريح (declaration) عن الحزم مثل:
package foo.bar
fun baz() {}
class Goo {}
// ...
ويتوضع حينها كلُّ ما يحتويه هذا الملف (كالأصناف (classes) والدوال (functions) مثلًا) في الحزمة المُصرَّح عنها ببدايته، ففي الشيفرة السابقة إن الاسم الفعليّ الكامل للدالة baz()
هو foo.bar.baz
والاسم الكامل للصنف Goo
هو foo.bar.Goo
.
وإذا لم تُحدَّد الحزمة في بداية الملف فإن محتوياته تتبع للحزمة الافتراضيّة "default" التي لا اسم لها.
استيراد الحزم الافتراضيّة (Default Imports)
يُستورَد عددٌ من الحزم تلقائيًا لتُضمَّن في كل ملف، وهي:
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (بدءًا من الإصدار 1.1)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
وتُستورَد بعض الحزم الإضافيّة بحسب منصّة العمل المستهدفة ( target platform)، وهي:
- JVM:
java.lang.*
kotlin.jvm.*
- JS:
kotlin.js.*
عمليات الاستيراد الإضافيّة (Imports)
قد تحتوي الملفات على عمليات استيراد حزم أخرى غير الحزم الافتراضيّة، ولها عدة حالات:
- الاستيراد عبر اسم واحد، مثل:
import foo.Bar // الوصول متاح بدون قيود لـ Bar
- استيراد كافة المحتويات الواقعة في مجال (scope) (حزمة أو صنف أو كائن أو ... إلخ.)، مثل:
import foo.* // الوصول متاح لكل محتوىً موجود في foo
وقد يحدث اختلاطٌ ما بين اسمين متشابهين؛ حينها تُستخدم التسمية البديلة بالاعتماد على الكلمة المفتاحيّة as
مثل:
import foo.Bar //
import bar.Bar as bBar // تعبّر التسمية البديلة عن 'bar.Bar'
ولا تقتصِر الكلمة المفتاحيّة import
على استيراد الأصناف وحسب، بل تُستخدم أيضًا لاستيراد تصريحات أخرى مثل:
- الدوال(functions) أو الخاصّيّات (properties) بمستوى أعلى (top-level)
- الدوال(functions) أو الخاصّيّات (properties) المُصرَّح عنها في تصريحات الكائن (object declarations)
- الثوابت المتعددة (enum constants)
ولا تدعم لغة Kotlin صيغة الاستيراد "import static
" (كما هو الحال في لغة Java) إذ تُستورَد هذه التصريحات عبر الكلمة المفتاحية import
الاعتياديّة.
مرئية الوصول للتصريحات بمستوى أعلى (Visibility of Top-level Declarations)
إذا كان التصريح ذو المستوى الأعلى مُحدَّدًا من نوع خاصّ (private) فإنه خاصٌّ بالملف الذي يحتويه فقط. (راجع محددات الوصول Visibility Modifiers )