2017-03-09 3 views
6

Gerade vor ein paar Minuten, als ich das Kotlin Github Repo erkundete, fand ich etwas Interessantes: Kotlin scheint jetzt ein Header-Keyword zu haben.Was bedeutet header/impl keyword in kotlin?

CollectionsH.kt:

open header class ArrayList<E> : MutableList<E> { 

//... 

header inline fun <reified T> Array<out T>?.orEmpty(): Array<out T> 

Was ist das? Ist es eine öffentlich verfügbare Funktion oder eine interne Funktion, die die Entwicklung von stdlib unterstützt?


EDIT: Es scheint ein impl Schlüsselwort zu sein, die mit Kopf in Verbindung zu arbeiten. Was ist das?

+10

Dieses Schlüsselwort bezieht sich auf Multi-Plattform-Projekte, aber diese Funktionalität wurde weder veröffentlicht noch angekündigt und ist derzeit ein internes Feature. – hotkey

+0

@hotkey sind Ihnen Beispiele für die verwendete Funktion bekannt? – spierce7

+0

@ spierce7, ich kenne keine Verwendung außerhalb des Kotlin-Projekts selbst. – hotkey

Antwort

5

UPDATE 2:

Multi-Plattform-Projekt Unterstützung wurde veröffentlicht.

UPDATE 1:

Die impl und header Schlüsselwörter durch actual und expect in der Preview-Version von Multi-Plattform-Projekte für Kotlin ersetzt wurden.

Die offizielle Dokumentation kann here oder an diesem GitHub permalink


Es wurde darüber gesprochen, in this video um 14:28 Uhr zu finden.

Vom slides: Slide #14

Grundsätzlich wird header verwendet werden, wenn Schnittstellen für Module schreiben, die über mehrere Plattformen hinweg arbeiten (JVM, JS, und Native). Das Schlüsselwort impl wird beim Schreiben einer Implementierung für eine bestimmte Plattform verwendet.

+0

Dies sollte alles sein, was man über "header" und "impl" keyword wissen muss. Danke, dass du das herausgefunden hast. – glee8e