进行 Kotlin 实战开发前,你应了解的那些技术点

本文介绍了Kotlin编程语言的关键特性和应用领域,包括静态类型、函数式和面向对象特性,以及在服务器端和Android开发中的优势。Kotlin提供了与Java的无缝互操作性,减少了空指针异常,简化了代码,提高了生产力。文章还讨论了Kotlin的设计哲学,强调其实用性、简洁性和安全性,并提到了相关开发工具和转换器的使用。
摘要由CSDN通过智能技术生成

本文概览:

  • Kotlin 的基本示范
  • Kotlin 语言的主要特征
  • Android 和服务器端开发的可能性
  • Kotlin 与其他语言的区别
  • 用 Kotlin 编写并运行代码

Kotlin 到底是什么 ? 它是一种针对 Java 平台的新编程语言。Kotlin 简洁、安全、务实,并且专注于与 Java 代码的互操作性。它几乎可以用在现在 Java 使用的任何地方 :服务器端开发、Android 应用,等等。Kotlin 可以很好地和所有现存的 Java 库和框架一起工作,而且性能水平和 Java 旗鼓相当。本文我们将详细地探讨 Kotlin 的主要特征。

Kotlin初体验

让我们从一个小例子开始,来看看 Kotlin 代码长什么样子。这个例子定义了一个 Person 类来表示“人”,创建一个“人”的集合,查找其中年纪最大的人,并打印结果。尽管这是非常小的一段代码,从中也可以看到 Kotlin 许多有趣的特性。

我们对其中的一些特性做了标记,以便你可以方便地在本书后续的内容中找到它们。

代码简要地进行了解释,但是如果有些内容你现在还无法理解,请不要担心,稍后我们会详细讨论。

如果你想尝试运行这个例 子,最简单的方法是使用 http://try.kotl.in 的在线 Playground。输入示例代码并单击 Run 按钮,代码将会执行。

代码清单 1.1 Kotlin 初体验

你声明了一个简单的数据类,它包括了两个属性:name和age。age属性默认为null(如果没有指定)。在创建“人”的列表时,你省略了Alice的年龄,所以这里年龄使用了默认值null。然后你调用了maxBy函数来查找列表中年纪最大的那个“人”。传递给这个函数的lambda表达式需要一个参数,使用it作为这个参数的默认名称。如果age属性为null,Elvis运算符(?:)会返回零。因为Alice的年龄没有指定,Elvis运算符使用零代替了它,所以Bob幸运地成了年纪最大的人。

喜欢这样的代码吗 ? 继续读下去,你将会学习到更多,并成为一名 Kotlin 专家。我们希望不久之后,在你自己的项目中也能看到这样的代码,而不只是在书上。

Kotlin的主要特征

你大概已经知道了 Kotlin 是一种怎样的语言,让我们更加深入地了解一下它的关键属性。首先,我们来看看你能用 Kotlin 创造哪些种类的应用程序。

目标平台 :服务器端、Android 及任何 Java 运行的地方

Kotlin 的首要目标是提供一种更简洁、更高效、更安全的替代 Java 的语言,并且适用于现今使用 Java 的所有环境。Java 是一门非常受欢迎的语言,它广泛地应用于不同的环境 :小到智能卡 (JavaCard 技术 ),大到 Google、Twitter、LinkedIn 和其他这种规模的互联网公司运行的最大的数据中心。在这些地方,使用 Kotlin 可以帮助开发者在实现目标的同时减少代码并避免麻烦。

Kotlin 最常见的应用场景有 :

  • 编写服务器端代码(典型的代表是 Web 应用后端)
  • 创建 Android 设备上运行的移动应用

但 Kotlin 还有其他用武之地。例如,可以使用 Intel Multi-OS Engine((https:// software.intel.com/en-us/multi-os-engine)让 Kotlin 代码运行在 iOS 设备上。还可以 使用 Kotlin 和 TornadoFX(https://github.com/edvin/tornadofx)以及 JavaFX(http://mng.bz/500y) 一起来构 建桌面应用程序。

除了 Java 之外,Kotlin 还可以编译成 JavaScript,允许你在浏览器中运行 Kotlin 代码。但截止本书撰写时,对 JavaScript 的支持仍在 JetBrains 内部探索并进行原型 开发,这超出了本书的范围,而其他一些平台也在考虑支持 Kotlin 的未来版本。

正如你所看到的,Kotlin 的目标平台是相当广泛的。Kotlin 并没有被限制在单 一的问题域,也没有被限制在解决软件开发者面临的某一类型的挑战。相反,对所 有开发过程中涌现的任务,Kotlin 都提供了全面的生产力提升。它借助支持特定领 域或编程范式的库,提供了卓越的集成水准。接下来让我们来看看 Kotlin 作为一种 编程语言的关键特质。

静态类型

Kotlin 和 Java 一样是一种静态类型的编程语言。这意味着所有表达式的类型在 编译期已经确定了,而编译器就能验证对象是否包含了你想访问的方法或者字段。

这与 动态类型 的编程语言形成了鲜明的对 比,后者在 JVM 上的代表包括 Groovy 和 JRuby。这些语言允许你定义可以存储任何数据类型的变量,或者返回任 何数据类型的函数,并在运行时才解析方法和字段引用。这会减少代码量并增加创 建数据结构的灵活性。但它的缺点是,在编译期不能发现像名字拼写错误这样的问题,继而导致运行时的错误。

另一方面,与 Java 不同的是,Kotlin 不需要你在源代码中显式地声明每个变量 的类型。很多情况下,变量类型可以根据上下文来自动判断,这样就可以省略类型声明。这里有一个可能是最简单的例子 :

val x = 1

在声明这个变量时,由于变量初始化为整型值,Kotlin 自动判断出它的类型是 Int。编译器这种从上下文推断变量类型的能力被称作类型推导。

下面罗列了一些静态类型带来的好处 :

  • 性能——方法调用速度更快,因为不需要在运行时才来判断调用的是哪个方法。
  • 可靠性——编译器验证了程序的正确性,因而运行时崩溃的概率更低。
  • 可维护性——陌生代码更容易维护,因为你可以看到代码中用到的对象的类型。
  • 工具支持——静态类型使 IDE 能提供可靠的重构、精确的代码补全以及其他 特性。

得益于 Kotlin 对类型推导的支持,你不再需要显式地声明类型,因此大部分关 于静态类型的额外冗长代码也就不复存在了。

当你检视 Kotl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值