介绍一些编程语言— Kotlin语言
Kotlin 语言
简介
Kotlin(科特林)是一个用于现代多平台应用的静态编程语言,由 JetBrains 开发。
Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。除此之外 Kotlin 还可以编译成二进制代码直接运行在机器上(例如嵌入式设备或 iOS)。
Kotlin 已正式成为 Android 官方支持开发语言。
2011 2011 2011 年 7 7 7 月,JetBrains 推出 Kotlin 项目,这是一个面向 JVM 的新语言,它已被开发一年之久。JetBrains 负责人 Dmitry Jemerov 说,大多数语言没有他们正在寻找的特性,Scala 除外。但是,他指出了 Scala 的编译时间慢这一明显缺陷。Kotlin 的既定目标之一是像 Java 一样快速编译。
2012 2012 2012 年 2 2 2 月,JetBrains 以 Apache 2 许可证开源此项目。Jetbrains 希望这个新语言能够推动 IntelliJ IDEA 的销售。
Kotlin v1.0于 2016 2016 2016 年 2 2 2 月 15 15 15 日发布。这被认为是第一个官方稳定版本,并且JetBrains已准备从该版本开始的长期向后兼容性。
在 Google I/O 2017 中,Google 宣布在 Android 上为 Kotlin 提供一等支持。
总结来说:
-
Android 官方开发语言
-
100 % 100\% 100% 兼容 Java
-
Kotlin-Js 前端开发
-
Kotlin-Jvm 服务端开发
-
Kotlin-Native 本地执行程序
-
Kotlin 是一门全栈语言
设计目标
创建一种兼容 Java 的语言。
让它比 Java 更安全,能够静态检测常见的陷阱。
让它比 Java 更简洁,通过支持variable type inference,higher-order functions,extension functions,mixins and first-class delegation 等实现。
让它比最成熟的竞争对手 Scala 语言更加简单。
开放源码
其基础编译器可以被独立出来并嵌入到 Maven、Ant 或 Gradle 工具链中。这使得在 IDE 中开发的代码能够利用已有的机制来构建,从而尽可能的减少了在新环境中使用所受的干预,哪怕与那些没有安装 Kotlin 插件的开发人员一起合作项目也没有问题。
The IntelliJ Kotlin 插件扩展了 Java 编译器使得 Kotlin 代码能够得以编写、编译和调试。除此之外,关于基本的 Java 集合,已经有编写好的帮助函数,可以更顺畅地衔接将在 Java 8 中出现的集合扩展。
即便 Scala 可能还是更为强大些,Kotlin 还是尝试着提供比 Java 更好的函数、模式匹配、空指针预防和泛型。该语言同时也支持特征和模式匹配。
Kotlin 插件在当前版本的 IntelliJ 和 Eclipse 中均已能使用。
Kotlin 语言与 Java 虚拟机
Kotlin 语言 可以在 JVM 上运行 ,
目前有 4 4 4 种语言可以运行在 JVM 之上 :
-
Java
-
Kotlin
-
Scala
-
Groovy
上述 4 4 4 种语言, 编译成字节码文件后, 可以运行在 JVM 上。
只要上述几种语言编译出的文件符合字节码文件格式要求, 就可以在 Java 虚拟机上运行。
这些语言编译成的字节码文件都遵循同一个规则 ,
每种语言的语法不通, 编译出的文件相同, 则编译代码的编译器是不同的。
Kotlin的运行原理
Java 虚拟机只认 class
文件, 虚拟机不会关心 class
时 Java 文件编译来的,还是其他文件编译来的。那此时我们创造一套自己的语法规则,再做一个对应的编译器,则可让我们的语言跑在 Java 虚拟机上。Kotlin 则是此原理,运行前会先编译成 class
,再供 Java 虚拟机运行。
吉祥物
2023 2023 2023 年 4 4 4 月 26 26 26日,据 JetBrains 官方博客消息,编程语言 Kotlin 迎来新设计的吉祥物,名为 Kodee。Kodee 是从 2021 2021 2021 年首次发布的 Kotlin 吉祥物改版而来,当时的设计受到了用户的批评和反对,因此时隔两年又推出了新设计。
Kodee 的造型经过了扁平化改造,颜色也从黑白配色改为黑紫配色,官方号称“创建了一个与 Kotlin 社区相关的平易近人且有趣的角色”。
基本类型与 Java 的对比
Kotlin不再存在基本类型,将全部使用对象类型
Java基本类型 | Kotlin对象类型 | 对象类型说明 |
---|---|---|
int | Int | 整型 |
long | Long | 长整型 |
short | Short | 短整型 |
float | Float | 单精度浮点型 |
double | Double | 双精度浮点型 |
boolean | Boolean | 布尔型 |
char | Char | 字符型 |
byte | Byte | 字节型 |
简单程序
打印 Hello World
fun main(args:Array<String>){
println("Hello World")
}
A + B problem
import java.util.Scanner
fun main() {
val read = Scanner(System.`in`)
var a = read.nextInt()
var b = read.nextInt()
println(a+b)
}
实现一个返回最大值的函数
fun max(a: Int, b: Int): Int {
if (a > b) return a
else return b
}
从 0 0 0 打印到 9 9 9
fun main() {
for (i in 0 until 10) {
println(i)
}
}