Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does `impl` mean in Kotlin?

Tags:

kotlin

I didn't find any explanation in the reference, but when I type impl in IntelliJ IDEA, I get an error:

It seems that it's treated as a reserved word, but what's it for? I tried putting many kinds of stuffs after impl but I get the error every time.

Update: It's renamed to expect after Kotlin 1.2.

like image 581
ice1000 Avatar asked Oct 16 '25 14:10

ice1000


1 Answers

It's for future multiplatform project support, and it's the pair of the header keyword which @hotkey explained in their comment here. It appeared in one of Andrey Breslav's presentations which you can find here, this specific topic starts at the 14:25 mark.

To sum it up briefly, the basic idea he presents is that you could have a common module shared between your platforms, in which there are some functions that are declared but not implemented, and are marked with the header keyword. Then, for the different platforms (JVM, JS, etc) you could have separate modules that implement these functions in platform specific ways - these actual implementations are where the impl keyword would be used.

His slide about it

He says that this whole system is just an internal prototype for now, so this presentation is probably all the public info we have about it. I'd also be interested in more details about this mechanism though :)


Update: as of the Kotlin 1.2 Beta, these keywords have been now replaced with expect and actual.

like image 113
zsmb13 Avatar answered Oct 18 '25 06:10

zsmb13



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!