الفرق بين المراجعتين لصفحة: «Kotlin/Any»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 2: | سطر 2: | ||
=== <code>[[Kotlin/Any/Init|<int>]]</code> === | === <code>[[Kotlin/Any/Init|<int>]]</code> === | ||
يعيد التابع <code>Any()</code> نسخةً من الصنف <code>[[Kotlin/Any|Any]]</code> | يعيد التابع <code>Any()</code> نسخةً من الصنف <code>[[Kotlin/Any|Any]]</code> الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass) <code>[[Kotlin/Any|Any]]</code>. | ||
== الدوال == | == الدوال == | ||
سطر 11: | سطر 11: | ||
=== <code>[[Kotlin/Any/hashCode|hashCode]]</code> === | === <code>[[Kotlin/Any/hashCode|hashCode]]</code> === | ||
يعيد التابع <code>hashCode()</code> قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع <code>hashCode()</code> دائمًا الشرطين الآتيين: | يعيد التابع <code>hashCode()</code> قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع <code>hashCode()</code> دائمًا الشرطين الآتيين: | ||
* سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها <nowiki/>[[Kotlin/Any/equals|التابع<code>equals()</code>]] لأجل المقارنة مع الكائن. | * سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها <nowiki/>[[Kotlin/Any/equals|التابع <code>equals()</code>]] لأجل المقارنة مع الكائن. | ||
* إذا تساوى كائنان بحسب التابع <code>[[Kotlin/Any/equals|equals()]]</code>، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابع <code>hashCode()</code> على أيٍّ منهما. | * إذا تساوى كائنان بحسب التابع <code>[[Kotlin/Any/equals|equals()]]</code>، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابع <code>hashCode()</code> على أيٍّ منهما. | ||
سطر 20: | سطر 20: | ||
=== <code>[[Kotlin/jvm/javaClass|javaClass]]</code> === | === <code>[[Kotlin/jvm/javaClass|javaClass]]</code> === | ||
تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه | تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصيّة في جميع الأصناف الفرعيّة (sub-classes) من الصنف <code>[[Kotlin/Any|Any]]</code>. | ||
== الدوال الإضافية (Extension Functions) == | == الدوال الإضافية (Extension Functions) == | ||
=== <code>[[Kotlin/also|also]]</code> === | === <code>[[Kotlin/also|also]]</code> === | ||
تستدعي الدالة <code>also()</code> بُنية (block) الدالة المُحدَّدة | تستدعي الدالة <code>also()</code> بُنية (block) الدالة المُحدَّدة مع جعل قيمة <code>this</code> كوسيط (argument) وتُعيد قيمة <code>this</code>. | ||
=== <code>[[Kotlin/apply|apply]]</code> === | === <code>[[Kotlin/apply|apply]]</code> === | ||
تستدعي الدالة <code>apply()</code> بُنية (block) الدالة المُحدَّدة | تستدعي الدالة <code>apply()</code> بُنية (block) الدالة المُحدَّدة مع جعل قيمة <code>this</code> كمستقبِلٍ (receiver) لها وتُعيد قيمة <code>this</code>. | ||
=== <code>[[Kotlin/js/asDynamic|asDynamic]]</code> === | === <code>[[Kotlin/js/asDynamic|asDynamic]]</code> === | ||
سطر 48: | سطر 48: | ||
=== <code>[[Kotlin/takeIf|takeIf]]</code> === | === <code>[[Kotlin/takeIf|takeIf]]</code> === | ||
تعيد الدالة <code>takeIf()</code> الكائن (object) الذي استُدعيت عبره إن كان ذلك الكائن يحقق شرطًا معيّنًا، أو تعيد القيمة <code>null</code> | تعيد الدالة <code>takeIf()</code> الكائن (object) الذي استُدعيت عبره إن كان ذلك الكائن يحقق شرطًا معيّنًا، أو تعيد القيمة <code>null</code> خلاف ذلك. | ||
=== <code>[[Kotlin/takeUnless|takeUnless]]</code> === | === <code>[[Kotlin/takeUnless|takeUnless]]</code> === | ||
تعيد الدالة <code>takeUnless()</code> الكائن (object) الذي استُدعيت عبره إن '''لم''' يكن هذا الكائن يحقق شرطًا معيّنًا، أو يعيد القيمة <code>null</code> | تعيد الدالة <code>takeUnless()</code> الكائن (object) الذي استُدعيت عبره إن '''لم''' يكن هذا الكائن يحقق شرطًا معيّنًا، أو يعيد القيمة <code>null</code> خلاف ذلك. | ||
=== <code>[[Kotlin/to|to]]</code> === | === <code>[[Kotlin/to|to]]</code> === | ||
تنشئ الدالة <code>to()</code> عنصرًا من النوع <code>Pair</code> | تنشئ الدالة <code>to()</code> عنصرًا من النوع <code>Pair</code> الذي يتكون من الكائن الذي استُدعي عبره والوسيط (argument) الذي مُرّر إليه، أي العنصر <code>that</code>. | ||
=== <code>[[Kotlin/js/unsafeCast|unsafeCast]]</code> === | === <code>[[Kotlin/js/unsafeCast|unsafeCast]]</code> === | ||
يحوِّل المعامل <code>[[Kotlin/typecasts|as]]</code> الكائن الذي استُدعي عبره إلى نوعٍ آخر (<code>T</code>) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن | يحوِّل المعامل <code>[[Kotlin/typecasts|as]]</code> الكائن الذي استُدعي عبره إلى نوعٍ آخر (<code>T</code>) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل <code>[[Kotlin/typecasts|as]]</code> عن استدعاء الدالة <code>unsafeCast()</code> التي تقوم بالتحويل الفعليّ. | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Classes]] | [[تصنيف:Kotlin Classes]] | ||
[[تصنيف:Kotlin Any]] | [[تصنيف:Kotlin Any]] |
مراجعة 06:50، 3 يوليو 2018
الدوال البانية
<int>
يعيد التابع Any()
نسخةً من الصنف Any
الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass) Any
.
الدوال
equals
تبين الدالة equals()
إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره
hashCode
يعيد التابع hashCode()
قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي عبره، ويحقِّق التابع hashCode()
دائمًا الشرطين الآتيين:
- سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها التابع
equals()
لأجل المقارنة مع الكائن. - إذا تساوى كائنان بحسب التابع
equals()
، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابعhashCode()
على أيٍّ منهما.
toString
يعيد التابع toString()
تمثيلًا نصيًا للكائن الذي يُستدعى عبره.
الخاصيات الإضافية (Extension Properties)
javaClass
تعيد الخاصيّة javaClass
صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصيّة في جميع الأصناف الفرعيّة (sub-classes) من الصنف Any
.
الدوال الإضافية (Extension Functions)
also
تستدعي الدالة also()
بُنية (block) الدالة المُحدَّدة مع جعل قيمة this
كوسيط (argument) وتُعيد قيمة this
.
apply
تستدعي الدالة apply()
بُنية (block) الدالة المُحدَّدة مع جعل قيمة this
كمستقبِلٍ (receiver) لها وتُعيد قيمة this
.
asDynamic
تعيد الدالة asDynamic()
قيمة الكائن الذي استدعيت عبره على شكل قيمةٍ من النوع الديناميكي (dynamic type)، الذي يُسمَح بإسناده إلى أي متغيّر أو تمريره كمتغيّر وسيط (argument) أيًّا كان نوعه.
iterator
يسمح التابع iterator()
بالتكرار (iterate) على كائنٍ ديناميكيّ (dynamic
) في الحالات الآتية:
- إن كان لديه دالة تكراريّة (iterator function).
- إن كان مصفوفةً (array).
- إن كان نسخةً (instance) من
kotlin.collections.Iterable
.
let
تستدعي الدالة let()
بنية (block) الدالة المُحدَّدة وذلك بجعل قيمة this
كوسيط (argument) لها وتعيد ناتج التنفيذ.
run
يمكن استخدام الدالة run()
بطريقتين:
- استدعاء بنية (block) الدالة المُحدَّدة وذلك بجعل قيمة
this
كمستقبِلٍ (receiver) له وإعادة قيمة ناتج البنية. - استدعاء بنية (block) الدالة المُحدَّدة وإعادة ناتجها.
takeIf
تعيد الدالة takeIf()
الكائن (object) الذي استُدعيت عبره إن كان ذلك الكائن يحقق شرطًا معيّنًا، أو تعيد القيمة null
خلاف ذلك.
takeUnless
تعيد الدالة takeUnless()
الكائن (object) الذي استُدعيت عبره إن لم يكن هذا الكائن يحقق شرطًا معيّنًا، أو يعيد القيمة null
خلاف ذلك.
to
تنشئ الدالة to()
عنصرًا من النوع Pair
الذي يتكون من الكائن الذي استُدعي عبره والوسيط (argument) الذي مُرّر إليه، أي العنصر that
.
unsafeCast
يحوِّل المعامل as
الكائن الذي استُدعي عبره إلى نوعٍ آخر (T
) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل as
عن استدعاء الدالة unsafeCast()
التي تقوم بالتحويل الفعليّ.