手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Kotlin 初认识

[日期:2017-05-29] 来源:知乎  作者:CNife [字体: ]

想写这个教程有三个原因,一是 Kotlin 作为一种新兴的编程语言,优点实在是太多,值得花时间学习掌握;二是 Kotlin 作为新兴的语言,各种教程和资料相当不完善,我作为 Kotlin 的喜爱者,也想为 Kotlin 的发展贡献自己的力量;三是因为我在学习 Kotlin 时,被各种特性搞得焦头烂额,所以想写个更加有条理、更清晰易懂的 Kotlin 教程。

好了,闲话少叙,让我们开始 Kotlin 学习之路吧!

1. Kotlin 是什么?

知乎有个格言“先是是不是,再问为什么”,想了解一件事件,首先得了解它是什么、从哪里来的,再才能谈其他的。想学 Kotlin,我们先看看它到底是什么:

Kotlin 是由 JetBrains 开发团队设计的基于 JVM 的静态型别编程语言,也可以被编译为 JavaScript 源代码。

这里有几个重点:

  1. 由 JetBrains 团队开发:这个 JetBrains 就是那个开发 Intellij IDEA 的公司,因此安装 Intellij IDEA 时会自动安装 Kotlin 开发插件,可以直接用来开发 Kotlin 项目。除此之外,Kotlin 在 Eclipse 上也有对应的开发插件,安装方法见这里http://www.linuxidc.com/Linux/2017-05/144350.htm

  2. 基于 JVM:JVM 就是 Java Virtual Machine,Java 虚拟机。原来 Java 虚拟机不只是 Java 语言的虚拟机,只要文件格式满足 JVM 对编译文件的要求,就能在它上面运行,所以说只要能编译成符合要求的 Java 字节码,任何语言都能在 Java 虚拟机上运行。这同时也说明,Kotlin 是一种编译型语言,它需要先编译成字节码,再在 JVM 上运行。

  3. 静态型别:什么是静态型别?维基百科的解释是:“如果一个编程语言的类型检查,可在不测试运行时期表达式的等价性的情况下进行,该语言即为静态类型的。”一般来说有编译这个执行过程的语言,基本都是静态类型;而不需要编译的解释型语言,一般都是动态类型。从类型的强弱来看,Kotlin 是一种强类型的语言,拥有与 Java 类似的类型系统。

  4. JavaScript 支持:从 Kotlin 1.1 开始,Kotlin 完全支持 JavaScript 平台的所有语言功能,但因为 JVM 不支持弱类型语言,所以用于 JVM 的 Kotlin 代码不能直接用在 JavaScript 平台上。而且因为我不懂 JavaScript,所以有关 JavaScript 的内容本专栏将不予介绍 (    )

2. Kotlin 和 Java 是什么关系?

如果说 Java 是 C++--,那么 Kotlin 可以说是 Java++-~~

  • 相比较 Java,Kotlin 增加了许多特性,比如 Java 8 之前没有的 Lambda 表达式、When 表达式、扩展函数、高阶函数…… 还有一堆一堆的关键字……

  • 相比较 Java,Kotlin 去除了一些特性,比如 final 关键字、静态变量、静态方法、空指针异常等;

  • 相比较 Java,Kotlin 封装了许多过程和表示方法,那些在 Java 中需要一大堆代码的东西,在 Kotlin 中只需要几行。

Kotlin 没有完全取代 Java 语言的野心,它用一种巧妙的方式让自己骑上了 Java 这只巨兽,利用 JVM 平台上丰富的类库迅速发展。

一方面,它是一种新兴的现代编程语言;另一方面,它又与 Java 有完善的互操作性,完善到可以直接在 Kotlin 代码中随便插入 Java 语句(反正最后都要编译成字节码~),同样可以在 Java 代码中调用 Kotlin 语言写成的函数和类库。

凭借与 Java 语言完全兼容的特性,学习 Kotlin 的成本相当低,你完全可以先用 Kotlin 语言写项目中的非核心代码,熟练掌握后再用 Kotlin 语言重写其他 Java 语言的部分,最终把整个项目迁移到 Kotlin 平台上来。

3. Kotlin 有哪些与众不同的特点?

主要特点前面介绍得差不多了,这里总结一下 Kotlin 语言里其他的特点:

  1. 从 Kotlin 开始学习函数式编程:早在 Java 8 的 Stream API 之前,Kotlin 就已经走上函数式编程的路了,通过函数式编程,你的代码将变得简洁而有效。在学习和使用 Kotlin 语言的旅程中,相信你会在一次又一次的惊艳里领略函数式编程的魅力;

  2. 只写简洁的代码:Java 的语法糖太少了!Kotlin 封装了 Java 里那些冗长而易错的代码,用一个又一个语法糖压缩你的代码。不过语法糖太多,一时可能难以消化,如果遇到吃不下去的语法糖,不妨试试用回 Java 代码哦。

  3. 清楚地声明每一个要素:在 Kotlin 里,只有声明为 open 的类才能被继承,只有声明为 open 的方法才能被重写,子类重写父类方法时,必须加上 override 关键字;声明变量时,只有用 var 声明的变量才是“可变的量”,声明为 val 的变量则相当于 Java 中用 final 修饰的常量。这里就体现出 Kotlin 的哲学了:对于可能产生混淆的地方,都要明确地指定可能混淆的要素,尽量避免不必要的混乱。

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-05/144349.htm

linux
相关资讯       Kotlin 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款