الفرق بين المراجعتين ل"Kotlin/Any"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
 
(3 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
 +
يعد الصنف <code>Any</code> الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ <code>Any</code>.<syntaxhighlight lang="kotlin">
 +
open class Any
 +
</syntaxhighlight><noinclude>{{DISPLAYTITLE:الصنف <code>‎‎Any‎</code>‎ في Kotlin}}</noinclude>
 
== الدوال البانية ==
 
== الدوال البانية ==
  
سطر 7: سطر 10:
  
 
=== <code>[[Kotlin/Any/equals|equals]]</code> ===
 
=== <code>[[Kotlin/Any/equals|equals]]</code> ===
تبين الدالة <code>equals()</code>‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت عبره
+
تتحقق الدالة <code>equals()</code>‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها.
  
 
=== <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 الخاصّة بالكائن الذي استُدعي معه.
* سيعيد نفس العدد الصحيح دائمًا في كل مرة يُستدعى على كائنٍ مُعيَّن شريطة عدم تغيُّر أيّ معلومة يستخدمها <nowiki/>[[Kotlin/Any/equals|التابع <code>equals()</code>‎]] لأجل المقارنة مع الكائن.
+
 
* إذا تساوى كائنان بحسب التابع <code>[[Kotlin/Any/equals|equals()]]</code>‎، فسينتج نفس العدد الصحيح (المُعبِّر عن الشيفرة hash code) عند استدعاء التابع <code>hashCode()</code>‎ على أيٍّ منهما.
 
  
 
=== <code>[[Kotlin/Any/toString|toString]]</code> ===
 
=== <code>[[Kotlin/Any/toString|toString]]</code> ===
يعيد التابع <code>toString()‎</code> تمثيلًا نصيًا للكائن الذي يُستدعى عبره.
+
تحول الدالة <code>toString()‎</code> الكائن الذي استدعي معها إلى سلسلة نصية.
  
 
== الخاصيات الإضافية (Extension Properties) ==
 
== الخاصيات الإضافية (Extension Properties) ==
  
 
=== <code>[[Kotlin/jvm/javaClass|javaClass]]</code> ===
 
=== <code>[[Kotlin/jvm/javaClass|javaClass]]</code> ===
تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصيّة في جميع الأصناف الفرعيّة (sub-classes) من الصنف <code>[[Kotlin/Any|Any]]</code>.
+
تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصيّة في جميع الأصناف الفرعيّة (sub-classes) من الصنف <code>Any</code>.
  
 
== الدوال الإضافية (Extension Functions) ==
 
== الدوال الإضافية (Extension Functions) ==
سطر 34: سطر 36:
  
 
=== <code>[[Kotlin/js/iterator|iterator]]</code> ===
 
=== <code>[[Kotlin/js/iterator|iterator]]</code> ===
يسمح التابع <code>iterator()‎</code> بالتكرار (iterate) على كائنٍ ديناميكيّ (<code>dynamic</code>) في الحالات الآتية:
+
تسمح الدالة <code>iterator()‎</code> بالتكرار (iterate) على كائنٍ ديناميكيّ (<code>dynamic</code>) في الحالات الآتية:
 
* إن كان لديه دالة تكراريّة (iterator function).
 
* إن كان لديه دالة تكراريّة (iterator function).
 
* إن كان مصفوفةً (array).
 
* إن كان مصفوفةً (array).
سطر 58: سطر 60:
 
=== <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>unsafeCast()‎</code> التي تقوم بالتحويل الفعليّ.
 
يحوِّل المعامل <code>[[Kotlin/typecasts|as]]</code> الكائن الذي استُدعي عبره إلى نوعٍ  آخر (<code>T</code>) بشكلٍ غير آمن (unsafe) أي بدون التحقُّق من الأنواع، فإن كان التحويل غير جائزٍ، فسيُعلِم المُترجم بوجود خطأٍ، ويعبِّر المعامل <code>[[Kotlin/typecasts|as]]</code> عن استدعاء الدالة <code>unsafeCast()‎</code> التي تقوم بالتحويل الفعليّ.
 +
 +
== مصادر ==
 +
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html صفحة الصنف Any في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Classes]]
+
[[تصنيف:Kotlin Class]]
 
[[تصنيف:Kotlin Any]]
 
[[تصنيف:Kotlin Any]]

المراجعة الحالية بتاريخ 06:39، 8 سبتمبر 2018

يعد الصنف Any الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any.

open class Any

الدوال البانية

<int>

يعيد التابع Any()‎ نسخةً من الصنف Any الذي هو الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin؛ أي أنّ كلَّ صنفٍ سيكون له الصنف الأعلى (superclass)‏ Any.

الدوال

equals

تتحقق الدالة equals()‎ إذا ما كان الكائن المُمرّر إليها يساوي الكائن الذي استدعيت معها.

hashCode

تعيد الدالة hashCode()‎ قيمة الشيفرة hash code الخاصّة بالكائن الذي استُدعي معه.


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()‎ التي تقوم بالتحويل الفعليّ.

مصادر