美文网首页Kotlin Three
Kotlin 迷人的语言特性(下)

Kotlin 迷人的语言特性(下)

作者: 哦好么人 | 来源:发表于2017-08-08 13:42 被阅读54次

在上一篇文章,我们介绍了 Kotlin 许多迷人的语言特性,包括空安全、类型推断、操作符重载等等,接下来我们继续领略 Kotlin 给我们带来的迷人特性。

委托属性

Kotlin 没有字段(field)的概念,只有属性,Kotlin 为所有的属性自动生成 Setter 和 Getter 方法(常量只有 Getter)方法,对 Kotlin 属性的设置和访问,也都是通过 Setter 和 Getter 方法。利用这个特性,Kotlin 为开发者提供了委托属性,可以将对属性的操作和访问委托个另外一个对象。懒加载和属性观察者,用起来 666。

Lambdas 表达式和高阶函数

Lambdas 表达式是 Kotlin 带给 Android 程序员的又一个期待已久的礼包,在 Java 8 只是 Lambdas 表达式的时候,大家就各种期待能用 Java 8 开发 Android,然而过了这么久,Jack 依然存在各种问题,而且现在还被官方放弃了。不过现在有了 Kotlin,Lambdas 表达式和高阶函数都不在是遥不可及。

类型别名

当碰到一个嵌套多级的泛型类型的是,要定义这个类型的变量是通过的,因为我们需要申明这样 MutableMap<K, MutableList<File>> 一个类型,除了书写起来非常费力外,可读性也非常差,有时可能还要比对尖括号的位置来阅读代码。为了解决这样的问题(同样也适用于 Kotlin 的函数类型),Kotlin 提供了类型别名的方式,让你可以为一个复杂的类型定义一个简单类型别名。

解构声明

还记得第一次接触到 Go 的时候,我的同事就对 Go 的同时返回多参数赞不绝口,都后来才发现,只要支持元祖的语言,都可以做到这一点。Kotlin 的解构声明在早期其实也是叫元祖,但是可能由于对元祖功能支持的并不完整,所以后面放弃了这个叫法。针对特定的类型(如:数据类)我们可以快速结构一个对象的得到多个变量,常用在多参数返回和集合迭代中。

Kotlin 协程

Kotlin 协程是 1.1 后引入的一个大的语言特性,现在还是体验阶段,虽然还是体验阶段,但是这个特性实在是太赞了,以至于已经吸引了大家太多的眼球了。Kotlin 协程旨在帮助程序员更方便的处理异步程序,Kotlin 官方提供协程实现库,囊括了现在流行语言中使用协程的一些经典用法,如# 和 ECMAScript 的 async/await 及源于 C# 和 Python generators/yield。

内联函数

当我们建一个函数或表达式标记成内联函数的时候,Kotlin 编译器会将对应的代码生成在该内联函数调用的地方,这样一方面解决了高阶函数带来的一些运行时的效率损失,同样也为具体化的类型参数(泛型)的实现提供了实现基础。

总结

Kotlin 有太多让人赞不绝口的迷人特性,其中有很多特性本身就值得我们花上好几个篇章来介绍,这里只是简单做了一些汇总,具体各种语言特性的体验,还需要各位看官亲自体验。

距离 Google I/O 大会已经过去一段时间了,Kotlin 的风暴似乎已经过去,你是不是已经找到自己的理由继续回去写自己的 Java 了。


相关文章

  • Kotlin 迷人的语言特性(下)

    在上一篇文章,我们介绍了 Kotlin 许多迷人的语言特性,包括空安全、类型推断、操作符重载等等,接下来我们继续领...

  • Kotlin 迷人的语言特性(上)

    Kotlin 今天能够被大家所广泛认识,当然是要依赖于 Google 在 I/O 大会上力挺的结果,然而支撑 Ko...

  • kotlin语言特性

    原文在 https://github.com/Zhuinden/guide-to-kotlin[https://g...

  • Android Kotlin面试题

    1.1 请简述一下什么是 Kotlin?它有哪些特性? kotlin和java一样也是一门jvm语言最后的编译结果...

  • 关于Kotlin部分知识点的深入思考

    Kotlin是基于JVM的一个语言,也是很时髦的语言。Java语言这几年的发展,借鉴了Kotlin的很多特性。Go...

  • Kotlin —— 扩展函数

    一、前言 Kotlin中的扩展函数特性让我们的代码变得更加简单和整洁。扩展函数是Kotlin语言中独有的新特性,利...

  • Kotlin反射

    Kotlin中KClass反射 Kotlin是函数式编程语言,它有一些独有的特性,例如,在Kotlin中的Prop...

  • 国内更新Kotlin plugin网络出错解决方案

    利用Android Studio、Intellij IDEA进行使用Kotlin语言的开发,在新语言特性出来的时候...

  • Kotlin语言(九):特性

    1、尾递归优化 尾递归:函数在调用自己之后没有再执行其他任何操作就是尾递归 尾递归优化的原理就是将递归转换成迭代,...

  • kotlin入门篇

    why kotlin kotlin引入现代语言的所有特性,而没有引入新的限制,它适合android原生开发 兼容性...

网友评论

    本文标题:Kotlin 迷人的语言特性(下)

    本文链接:https://www.haomeiwen.com/subject/wgetrxtx.html