Avatar ·

ماذا يعني العامل `::` في Kotlin؟ شرح مع أمثلة

مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin لتطوير Android ووجدت بناء جملة غريباً بنقطتين رأسيتين `::`. أراه في كل مكان: في lambdas، عند العمل مع reflection، وفي Jetpack Compose. على سبيل المثال، رأيت هذا الكود: ```kotlin val onClick: (View) -> Unit = ::handleClick ``` أو هذا: ```kotlin class MyFragment : Fragment() { private val binding by viewModels() // ... val items = listOf("A", "B", "C") val filtered = items.filter(String::isNotEmpty) } ``` وأيضاً في Compose: ```kotlin Button(onClick = ::onButtonClick) { Text("Click") } ``` أفهم أن هذا له علاقة بمراجع الدوال أو الخصائص، لكنني لا أستطيع فهم الفرق بين `::handleClick` ومجرد `{ handleClick(it) }`. لماذا نحتاج هذا العامل؟ متى نستخدمه، ومتى لا؟