kotlin学习day9: 为什么要使用kotlin

Kotlin 是一门把 Java 平台作为目标的新的编程语言。它简洁、安全、优雅而且专注于和 Java 代码间的互操作性。它几乎可以用于如今 Java 遍及的所有地方:服务器端开发、 Android 应用开发和更多其他的方面。 Kotlin 能够很好的与现有的 Java 库和框架并存。而且,它运行的性能不亚于 Java 。

Kotlin-静态类型

像 Java 那样, Kotin 是一种静态类型的编程语言。这意味着在编译时就可以确定程序中每一个表达式的类型。编译器可以验证你所访问的对象中的方法和字段。
这(种特性)跟JVM的具有代表性的动态类型编程语言,比如Groovy和JRuby,形成对比。那些语言允许你定义能够存储或返回任何数据类型的变量和函数,并且可以在运行时解析方法和字段引用。这样的代码更简短,在创建数据结构时也更为灵活。但它也有缺点,诸如无法在编译时检测命名拼写错误,并导致运行时错误这样的问题。另一方面,跟Java相比,Kotlin并不需要你在代码中显式的指定每一个变量的类型。在许多场景中,变量类型能够
根据上下文自动推断。这将允许你省略类型声明。

以下是一个最简单的例子:
var x = 1

你声明了一个变量。由于它以一个整数值进行初始化,Kotlin自动推断这个变量的类型为 Int 。编译器根据上下文判断变量类型的能力叫做类型推断。
以下是静态类型的一些好处:

  • 性能 - 由于不需要再运行时判断需要调用哪个方法,方法调用将会变得更快。

  • 可读性 - 编译器校验了程序的准确性,所以在运行时发生崩溃的可能性将会降低。

  • 可维护性 - 由于你能看到代码调用了什么类型的对象,使用不熟悉的代码将会变得更加容易。

  • 工具支持 - 静态类型使得可靠的重构、精确的代码填充和其他的IDE特性变得可能。由于Kotlin对类型推断的支持,大部分跟静态类型有关的冗余信息将会消失,因为你不需要显示指定类型。

Koitlin-函数式和面向对象
函数式编程的概念
  • 函数是一等公民 - 你把函数(行为块)看做是一个值。你可以把它们存储在变量中,把它们作为一个参数进行传递或者从其他函数中返回它们。
  • 不变性 - 你使用的是不可改变的对象。一旦它被创建,它的状态便不可更改。
  • 没有副作用 - 你使用的纯函数对于给定的相同输入将会返回相同的结果。同时,它不会修改其他对象的状态或者和外界进行交互。
函数式编程的好处
  • 简洁-因为把函数当做一个值将会给你带来更强大的抽象能力,这将避免你的代码出现冗余
  • 多线程安全-多线程程序中的一个最大的错误来源是没有正确的
    同步的情况下修改了来自多个线程的同一个数据。如果你使用了不可修改的数据结构和纯函
    数,你可以确保不会出现不安全的修改
  • 容易测试-函数能够被隔
    离测试而无需一堆安装代码来构造函数所依赖的完整环境
Kotlin对函数式编程的支持
  • 函数类型 允许函数接收作为参数的其他函数或者返回其他函数
  • lambda表达式 让你使用最小的模板分发代码块
  • 数据类 为创建不可变值对象提供了精简的语法
  • API 标准库为以函数式风格使用对象和集合提供了丰富的API
Kotlin-免费开源

Kotlin,包括编译器、函数库和所有相关的库都是完全开源和免费的。Kotlin使用Apache 2许可。它在GitHub的开发上是开放的。同时我们欢迎社区贡献。你也有三种可选的开源集成开发环境来开发Kotlin应用:IntelliJ IDEA 社区版、Android Studio和Eclipse都是完全支持的(当然IntelliJ IDEA 旗舰版亦可)。

Kotlin-Java的互操作性

Kotlin类和方法能够像常规的Java类和方法那样被调用。这将给你带来在项目的任何地方混合Java和Kotlin代码的终极灵活性。当你开始在你的Java项目中采用Kotlin时,你可以在你的代码库中的任意单一文件中运行Java-Kotlin转换器,其余的代码将会继续编译和正常工作而无需任何修改。不管你所转换的类是什么角色,这个功能都有效。

Kotlin专注于互操作性的另一个方面是尽最大可能的使用现有的Java库。例如,Kotlin并没有自己的集合库。它依赖于Java标准库的类,通过额外的函数来扩展他们以更加方便的使用,这意味着当你调用Java API时,你不需要通过Kotlin包装或者转换对象。Kotlin提供的所有API都不会出现运行时消耗。

Kotlin工具也为多语言项目提供了全面的支持。它能够编译任意一个混合Java和Kotlin的源文件,不论他们之间是如何的相互依赖。这个IDE特性对其他语言也是有效的。它将允许你做以下事情:

  • 在Java和Kotlin源文件中自由切换 调试混合语言项目并在用不同
  • 语言编写的代码中单步跟踪
  • 使用Kotlin重构和正确的升级你的Java函数,反之亦然
Kotlin-Android中的使用
  1. Kotlin的语言特性,结合支持Android框架的编译器特殊插件,把Android开发变为一个更具生产效率和舒适的体验。诸如为控件添加侦听器或者绑定布局元素到字段的常见开发任务,能够使用更少的代码来实现。有时候根本不需要代码(编译器会为你生成代码)。

  2. 性能方面,使用Kotlin也不会带来任何的坏处。Kotlin编译器产生的代码和常规的Java代码在执行时同样高效。Kotlin占用的运行时资源非常小,因此你不会遇到应用安装包大小会大幅增加的问题。当你使用lambda表达式时,许多的Kotlin标准库函数将会以内联的方式出现。内联lambda表达式确保没有新的对象会被创建,同时,应用不会遭遇额外的垃圾回收暂停问题。

  3. 更好的应用可靠性。如果你有更多Android应用开发
    经验,对于 Unfortunately, Process Has Stopped 对话框,你将不会陌生。当你的应用抛出一个未处理的异常时,通常是 NullPointerException ,这个对话框将会出现。Kotlin的类型系统
    使用它的精确的空值跟踪特性来让空指针异常变得没那么迫切。大部分的代码在Java中会导致 NullPointerException,在Kotlin中会编译失败,这将确保你在应用到达用户手上之前修复错误。同时,因为Kotlin是完全兼容Java6的,它的使用不会引入任何新的兼容性问题。你将会受益于Kotlin所有的既酷又新的特性。你的用户将会依然能够在他们的设备上运行你的应用,即使他们不是在最新版的Android上运行。

Kotlin总结
  • Kotlin是静态类型的,支持类型推断的,在保持代码精简的同时维持准确性和性能。
  • kotlin同时支持面向对象和函数式编程风格,通过把函数放在一等公民的位置实现更高层次的抽象,通过支持不可变值简化了测试和多线程开发。
  • Kotlin在服务器端应用运行良好。它能全面支持现有的Java框架并为公共任务提供了新的工具,例如生成HTML和保持一致性。
  • Kotlin在Android开发方面也是可用的。由于紧凑的运行时,Android API的特殊编译器支持,丰富的函数库为常见的Android开发任务提供了Kotlin友好的函数支持。
  • Kotlin是免费和开源的。它为主流IDE和构建系统提供了全面的支持。
  • Kotlin是优雅的、安全的、精简的以及互操作性强的(语言)。这意味着它专注于使用已经被证明的方案来解决常见任务,阻止一般的错误,例如: NullPointerException ,支持紧凑和易读的代码,松散的Java集成功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值