聊聊Kotlin包的概念(一)

1.Kotlin默认导包

在kotlin中,我们可以在顶层函数或者类方法中随时随地的使用 let、with、also、apply等作用域方法,也可以随时调用 listOf、mutableListOf 等集合相关的方法,那么这些方法是从哪来的呢?原因就是每一个kotlin文件,都会默认导入很多包。根据官方文档,每一个kotlin文件都会默认导入以下包:

kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.* (自 1.1 起)
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*

//根据目标平台还会导入额外的包:
JVM:
java.lang.*
kotlin.jvm.*
JS:
kotlin.js.*

以 listOf 方法为例,点进去看源码:

package kotlin.collections

/**
 * Returns a new read-only list of given elements.  The returned list is serializable (JVM).
 * @sample samples.collections.Collections.Lists.readOnlyList
 */
public fun <T> listOf(vararg elements: T): List<T> = if (elements.size > 0) elements.asList() else emptyList()

可以看到 listOf 方法是kotlin.collections包下的一个顶层方法,所以他被默认导入到了每一个kotlin文件,我们也就可以随时随地是用这个方法了。

2.kotlin“包空间”

在Java中一个文件必须对应一个类,kotlin弱化了文件的概念(与Java理念不同不适应), 同一个包下的所有kt文件,文件中的内容(除了private权限)其实都是在一个包空间内,同一个包下的kt文件之间的类、函数、变量(除了private权限)都是共享的。可以理解为同一个包下有着不同名字的kt文件,其实并没有什么意义,因为都是一个包空间下的,只是把代码按功能放在不同的文件写而已。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值