header/impl关键字在kotlin中的含义是什么?

gle*_*e8e 6 kotlin

就在不久前,当我探索Kotlin github回购时,我发现了一些有趣的东西:Kotlin现在似乎有一个标题关键字.

CollectionsH.kt:

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

 //...

 header inline fun <reified T> Array<out T>?.orEmpty(): Array<out T>
Run Code Online (Sandbox Code Playgroud)

这是什么意思?它是一些公共可用功能还是内部功能来帮助stdlib开发?


编辑:似乎有一个impl关键字与标题一起使用.那是什么?

Aro*_*Aro 5

更新2:

多平台项目支持已经发布.

更新1:

implheader关键字已被取代actual,并expect在科特林多平台项目的预览版.

官方文档可以在这里找到,也可以在这个GitHub 永久链接中找到


在14:28的视频中谈到了这个问题.

幻灯片: 幻灯片#14

基本上,header将在为跨多个平台(JVM,JS和Native)工作的模块编写接口时使用.在impl为特定平台编写实现时将使用该关键字.