الفرق بين المراجعتين لصفحة: «Kotlin/Function»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الصنف <code>‎‎Function</code>‎ في Kotlin}}</noinclude>
تمثل الواجهة <code>Function</code> قيمةً لنوع وظيفي (functional type) -مثل [[Kotlin/lambdas#.D8.AA.D8.B9.D8.A7.D8.A8.D9.8A.D8.B1 Lambda .D9.88.D8.A7.D9.84.D8.AF.D9.88.D8.A7.D9.84 .D8.A7.D9.84.D9.85.D8.AC.D9.87.D9.88.D9.84.D8.A9 .28Anonymous Functions.29|تعبير lambda]]-، أو [[Kotlin/lambdas#.D8.AA.D8.B9.D8.A7.D8.A8.D9.8A.D8.B1 Lambda .D9.88.D8.A7.D9.84.D8.AF.D9.88.D8.A7.D9.84 .D8.A7.D9.84.D9.85.D8.AC.D9.87.D9.88.D9.84.D8.A9 .28Anonymous Functions.29|دالة مجهولة]]، أو مرجع دالة.<syntaxhighlight lang="kotlin">
== الدوال الموروثة==
interface Function<out R>
</syntaxhighlight>إذ يعيد المعامل <code>R</code> نوع الدالة.<noinclude>{{DISPLAYTITLE:الصنف <code>‎‎Function</code>‎ في Kotlin}}</noinclude>
==الدوال الموروثة==
<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>‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا:
 
 
===<code>[[Kotlin/Any/toString|toString]]</code>===
===<code>[[Kotlin/Any/toString|toString]]</code>===
يعيد التابع <code>toString()‎</code> تمثيلًا نصيًا للكائن الذي يُستدعى عبره.
تحول الدالة <code>toString()‎</code> الكائن الذي يُستدعى معه إلى سلسلة نصية (String).


== الدوال الإضافية (Extension Functions) ==
== الدوال الإضافية (Extension Functions) ==


=== <code>[[Kotlin/reflect/reflect|reflect]]</code> ===
=== <code>[[Kotlin/reflect/reflect|reflect]]</code> ===
الدالة <code>reflect()‎</code> هي واجهة برمجية (API) تجريبية، حيث تُعطى دالة أو تعبير لامبدا ( lambda expression)، وتعيد نسخة من النوع <code>KFunction</code>توفر معلومات داخلية عن تلك الدالة أو تعبير لامبدا الممرّر وعن الوسائط(parameters). في الوقت الحالي لا تٌدعم كل الميزات، بالخصوص<code>KCallable.call</code> و <code>KCallable.callBy</code> .
الدالة <code>reflect()‎</code> هي واجهة برمجية (API) تجريبية؛ إن استدعيت مع تعبير تعريف دالة (function expression) أو <nowiki/>[[Kotlin/lambdas#.D8.AA.D8.B9.D8.A7.D8.A8.D9.8A.D8.B1 Lambda .D9.88.D8.A7.D9.84.D8.AF.D9.88.D8.A7.D9.84 .D8.A7.D9.84.D9.85.D8.AC.D9.87.D9.88.D9.84.D8.A9 .28Anonymous Functions.29|تعبير lambda]]، فستعيد نسخةً من <code>KFunction</code> تزودنا بالإمكانيات الداخلية (introspection capabilities) لتعبير تعريف الدالة أو <nowiki/>[[Kotlin/lambdas#.D8.AA.D8.B9.D8.A7.D8.A8.D9.8A.D8.B1 Lambda .D9.88.D8.A7.D9.84.D8.AF.D9.88.D8.A7.D9.84 .D8.A7.D9.84.D9.85.D8.AC.D9.87.D9.88.D9.84.D8.A9 .28Anonymous Functions.29|تعبير lambda]] ذاك المعطى وعن معاملاته.
 
== الوارثات (Inheritors) ==
 
=== <code>[[Kotlin/reflect/KFunction|KFunction]]</code> ===
 
== مصادر ==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function.html صفحة الواجهة Function في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Classes]]
[[تصنيف:Kotlin Interface]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Function]]

المراجعة الحالية بتاريخ 11:38، 9 سبتمبر 2018

تمثل الواجهة Function قيمةً لنوع وظيفي (functional type) -مثل تعبير lambda-، أو دالة مجهولة، أو مرجع دالة.

interface Function<out R>

إذ يعيد المعامل R نوع الدالة.

الدوال الموروثة

equals

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


hashCode

تعيد الدالة hashCode()‎ الشيفرة Hash الخاصّة بالكائن الذي استُدعي معها. تُحقِّق هذه الدالة الشرطين الآتيين دائمًا:


toString

تحول الدالة toString()‎ الكائن الذي يُستدعى معه إلى سلسلة نصية (String).

الدوال الإضافية (Extension Functions)

reflect

الدالة reflect()‎ هي واجهة برمجية (API) تجريبية؛ إن استدعيت مع تعبير تعريف دالة (function expression) أو تعبير lambda، فستعيد نسخةً من KFunction تزودنا بالإمكانيات الداخلية (introspection capabilities) لتعبير تعريف الدالة أو تعبير lambda ذاك المعطى وعن معاملاته.

الوارثات (Inheritors)

KFunction

مصادر