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文件,其实并没有什么意义,因为都是一个包空间下的,只是把代码按功能放在不同的文件写而已。

聊聊Kotlin包的概念(一)相关推荐

  1. go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private,fmt的Printf不就是嘛!...

    示例 4.1 hello_world.go package mainimport "fmt"func main() { fmt.Println("hello, world ...

  2. Python 中引入多个模块,包的概念

    实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理. 而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢? ...

  3. python package什么意思_Python模块、包(Package)概念与用法分析

    本文实例讲述了python模块.包(package)概念与用法.分享给大家供大家参考,具体如下: python中"模块"的概念 在开发中,我们会有很多函数,我们可以把这些函数都放到 ...

  4. jar包等概念的理解、yaml语法学习和多环境切换

    一.学习内容 jar包等概念的理解 yaml语法学习 多环境切换 1.jar包等概念的理解 这部分的学习内容是关于一些名词的解释,这些名词是我在看课过程中,听到或看到却又未曾了解的.因为不理解这些名词 ...

  5. 「社区说」第三期即将开启,一起来和谷歌开发者专家聊聊 Kotlin 协程

    「社区说」第三场:白话 Kotlin 协程 活动时间:4 月 22 日 20:00-21:00 直播链接:立即报名 活动背景:本次将由 Android 与 Kotlin 方向谷歌开发者专家朱涛带来&l ...

  6. ROS学习之包的概念

    目录 常见文件和目录 命令行工具 客户端库支持 python C ++ 对于rosbuild,请参阅:rosbuild / Packages ROS中的软件以包的形式组织.软件包可能包含ROS 节点, ...

  7. PL/SQL 包的概念及创建使用

    包 1:概念 包是一组过程.函数.变量.常量和游标等元素的组合.是对这些PL/SQL 程序设计元素的封装.其中变量相当于类中的成员变量,过程和函数相当于类方法.把相关的模块归类成包,可使开发人员利用面 ...

  8. java包的概念及作用

    概念:用于区别类名的命名空间,是一种更好的组织类的机制. 作用: 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用了树形目录的存储方式.同一个包中的类 ...

  9. Linux软件源apt,仓库,包的概念

    原文链接: https://www.cnblogs.com/grooovvve/p/8661054.html/ 概念介绍: 软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自 ...

最新文章

  1. 物联网入门怎么学?物联网基础知识
  2. BugKuCTF WEB 输入密码查看flag
  3. linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)
  4. 记录上一个项目踩过的坑
  5. html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码
  6. ASP.NET MVC 开源驾校考试系统
  7. w3school JavaScript笔记2 ——JavaScript HTML DOM
  8. 微软私有云2012软件发布
  9. 瑞斯康达串口-console接口线序和通用调试线改造图文教程
  10. 为什么小企业更应该关注人工智能?
  11. PHP攻防安全相关 -- 转
  12. 对多个Excel表中的数据进行合并计算
  13. 上传本地仓库到github远程仓库
  14. c语言中如何用sqar函数,简易函数信号发生器设计_毕业论文.doc
  15. ROS集成开发环境IDE----RoboWare开源
  16. 简历中使用STAR法则
  17. 批量本地英语文档翻译软件
  18. 用批处理创建OU和域用户
  19. 国密浏览器如何完成SM2国密SSL协议协商
  20. 2018 北京化工大学ACCA精英班招生简章

热门文章

  1. 博弈论(Bash博弈、Nim博弈、SG函数、组合博弈)
  2. 刚刚!国产统一操作系统 UOS 正式对外公开,太牛逼了!
  3. Excel中如何进行字符串的截取
  4. 大数据excel导出,内存溢出解决方案(SXSSF流用户模型)
  5. 小程序的优势是什么?
  6. 数据告诉你:年存10W+的年轻人都是怎么攒钱的 | DT数说
  7. 说明HTML中标签script的作用,htmlscript标签怎么用
  8. 团队管理8——人才成长计划
  9. 技术面试与 HR 谈薪资技巧
  10. 「面试」到阿里第五轮后我才知道所谓的URL是什么