序言
最近看的一个自研SDK中有kt的文件,引入了Kotlin的依赖,并需要安装Kotlin插件,好奇这个到底是干啥的,整理记录一下。
这里引入一个问题,插件和依赖的区别,比如lombok有了依赖还需要插件吗:
- 依赖:项目里运行打包都需要jar包,过去都是直接拷贝到项目web-info/lib目录下,现在大部分都是通过maven import maven project导入jar包。pom文件添加的依赖在项目打包时也需要把它们也打包进项目。
- 插件:在项目开发时需要,但是在项目运行时不需要,因此在项目开发完成后不需要把插件打包进项目中,编译后插件的作用已经完成了,不需要把插件打包进项目。
认识Kotlin
Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
优点:
- 简洁:大大减少样板代码的数量。
- 安全: 避免空指针异常等整个类的错误。
- 互操作性: 充分利用 JVM、Android 和浏览器的现有库。
- 工具友好: 可用任何 Java IDE 或者使用命令行构建。
创建Kotlin工程
按照IDEA环境搭建创建Kotlin工程,在src目录下创建一个app.kt文件跑出第一个函数。
基本语法
- 包声明:和golang语言一样需要声明包。但没有指定包时,默认为default 包。
- 函数定义:fun定义,参数格式为:参数 : 类型,eg:fun sum(a: Int, b: Int): Int{},有可变长参数,也可使用lambda表达式(匿名函数)。
- 定义常量和变量:不可变变量用val 关键字修饰,可变变量用var 关键字修饰。
- 注释:基本与Java一样。与 Java 不同的是Kotlin 中的块注释允许嵌套。
- 字符串模版:$ 表示一个变量名或者变量值。eg:var a=1;val s = "a is $a"。
- null检查机制:Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理。
- 类型检测及自动类型转换:我们可以使用 is 运算符检测一个表达式是否某类型的一个实例(类似于Java中的instanceof关键字)。做过类型判断以后会自动类型转换。
- 区间:区间表达式由具有操作符形式 .. 的 rangeTo 函数辅以 in 和 !in 形成。区间是为任何可比较类型定义的,但对于整型原生类型,它有一个优化的实现。
未完,后续补充... ...
参考链接: