聊聊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文件,其实并没有什么意义,因为都是一个包空间下的,只是把代码按功能放在不同的文件写而已。
聊聊Kotlin包的概念(一)相关推荐
- go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private,fmt的Printf不就是嘛!...
示例 4.1 hello_world.go package mainimport "fmt"func main() { fmt.Println("hello, world ...
- Python 中引入多个模块,包的概念
实际开发中,一个大型的项目往往需要使用成百上千的 Python 模块,如果将这些模块都堆放在一起,势必不好管理. 而且,使用模块可以有效避免变量名或函数名重名引发的冲突,但是如果模块名重复怎么办呢? ...
- python package什么意思_Python模块、包(Package)概念与用法分析
本文实例讲述了python模块.包(package)概念与用法.分享给大家供大家参考,具体如下: python中"模块"的概念 在开发中,我们会有很多函数,我们可以把这些函数都放到 ...
- jar包等概念的理解、yaml语法学习和多环境切换
一.学习内容 jar包等概念的理解 yaml语法学习 多环境切换 1.jar包等概念的理解 这部分的学习内容是关于一些名词的解释,这些名词是我在看课过程中,听到或看到却又未曾了解的.因为不理解这些名词 ...
- 「社区说」第三期即将开启,一起来和谷歌开发者专家聊聊 Kotlin 协程
「社区说」第三场:白话 Kotlin 协程 活动时间:4 月 22 日 20:00-21:00 直播链接:立即报名 活动背景:本次将由 Android 与 Kotlin 方向谷歌开发者专家朱涛带来&l ...
- ROS学习之包的概念
目录 常见文件和目录 命令行工具 客户端库支持 python C ++ 对于rosbuild,请参阅:rosbuild / Packages ROS中的软件以包的形式组织.软件包可能包含ROS 节点, ...
- PL/SQL 包的概念及创建使用
包 1:概念 包是一组过程.函数.变量.常量和游标等元素的组合.是对这些PL/SQL 程序设计元素的封装.其中变量相当于类中的成员变量,过程和函数相当于类方法.把相关的模块归类成包,可使开发人员利用面 ...
- java包的概念及作用
概念:用于区别类名的命名空间,是一种更好的组织类的机制. 作用: 1.把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用. 2.如同文件夹一样,包也采用了树形目录的存储方式.同一个包中的类 ...
- Linux软件源apt,仓库,包的概念
原文链接: https://www.cnblogs.com/grooovvve/p/8661054.html/ 概念介绍: 软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自 ...
最新文章
- 物联网入门怎么学?物联网基础知识
- BugKuCTF WEB 输入密码查看flag
- linux中shell编写数组排序,linux bash shell实现对数组快速排序(升序)
- 记录上一个项目踩过的坑
- html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码
- ASP.NET MVC 开源驾校考试系统
- w3school JavaScript笔记2 ——JavaScript HTML DOM
- 微软私有云2012软件发布
- 瑞斯康达串口-console接口线序和通用调试线改造图文教程
- 为什么小企业更应该关注人工智能?
- PHP攻防安全相关 -- 转
- 对多个Excel表中的数据进行合并计算
- 上传本地仓库到github远程仓库
- c语言中如何用sqar函数,简易函数信号发生器设计_毕业论文.doc
- ROS集成开发环境IDE----RoboWare开源
- 简历中使用STAR法则
- 批量本地英语文档翻译软件
- 用批处理创建OU和域用户
- 国密浏览器如何完成SM2国密SSL协议协商
- 2018 北京化工大学ACCA精英班招生简章