electrolobzik
02/09/2022, 10:09 AMval answer: String by project
work? Project
interface doesn’t have getValue()
and setValue()
, so how does it work as a delegate then?Sam
02/09/2022, 10:12 AM/**
* Locates a property on [Project].
*/
operator fun Project.provideDelegate(any: Any?, property: KProperty<*>): PropertyDelegate =
propertyDelegateFor(this, property)
Sam
02/09/2022, 10:13 AMelectrolobzik
02/09/2022, 10:17 AMelectrolobzik
02/09/2022, 10:19 AMProject.provideDelegate
is called? I don’t follow :)Sam
02/09/2022, 10:20 AMIf the object used on the right-hand side of(https://kotlinlang.org/docs/delegated-properties.html#providing-a-delegate)definesby
as a member or extension function, that function will be called to create the property delegate instance.provideDelegate
Sam
02/09/2022, 10:20 AMprovideDelegate
exists (and is imported)Sam
02/09/2022, 10:22 AMgetValue
exists, then properties using by
will automatically call through to getValue(...)
. If provideDelegate
exists, then properties using by
will instead call provideDelegate(...).getValue(...)
. 🧙Sam
02/09/2022, 10:23 AMelectrolobzik
02/09/2022, 10:24 AMprovideDelegate()
references to propertyDelegateFor()
. Where it is located?electrolobzik
02/09/2022, 10:25 AMProject
or in ProjectDelegate
.electrolobzik
02/09/2022, 10:26 AMSam
02/09/2022, 10:27 AM