Android 版 Kotlin 简介

已发表: 2018-06-28

在 Android 世界中,我敢肯定没有人没有听说过 Java。 一种强大的编程语言,可以构建几乎可以在任何硬件上的任何操作系统上运行的应用程序。 然而,多年来,已经引入了许多新的编程语言来运行在 Java 虚拟机上。 Kotlin 就是这样一种语言,它是 Google 正在做的事情的一部分,可以使 Android 应用程序开发“更好”。 Google 在 Google I/O 2017 上宣布了对 Kotlin 的广泛支持。

我们当然知道 Kotlin 是为应用程序开发人员准备的,而且他们喜欢它! 但他们为什么喜欢它? 是什么让谷歌在 2018 年再次强调 Kotlin 对应用程序开发的重要性? 究竟是什么?

Kotlin 是一种在 JVM 上运行的静态类型编程语言,是一种来自 JetBrains 的编程和开发语言。 Kotlin 是一种现代、富有表现力、安全且功能强大的语言,可以与我们现有的 Android 语言互操作。 其他一些功能包括:

1. Android Studio 3.0 及更高版本完全支持 Kotlin。

2. Kotlin 是一种基于 JVM 的语言,由“Intellij”背后的团队“JetBrains”创建。

3. Intellij 是 Android Studio 的基础。

4. Kotlin 是一种“面向对象语言”

为什么是科特林?

轻的 :

与其他库相比,Kotlin 库非常小。 这很重要,因为涉及 Proguard 和 Multidexing 的 Android 方法限制始终是一个需要解决的问题。所有这些解决方案都会增加复杂性,在调试时会消耗时间。Kotlin 增加了不到 7000 个方法。

高度互操作性:

Kotlin 与 Java 库配合得很好。 Kotlin 团队希望继续开发用 Java 编写的当前项目,而无需重写整个代码。 所以 Kotlin 是非常具有互操作性的语言。

与 Android Studio 集成:

Kotlin 与 Android Studio 和 Gradle 集成。 安装 Kotlin 很容易,因为它需要一个用于 IDE 的插件和一个用于 Gradle 的插件。 使用 Kotlin 启动一个 Android 项目并不难。

不再有 NullPointerExceptions :

NullPointerException 是 Android 中应用程序崩溃的最常见原因之一。 为了修复此异常并保护您的代码,每次都使用空检查是一项耗时的任务。 但在 Kotlin 中这是一个例外,因为已经集成了空安全。

表现 :

Kotlin 应用程序的运行速度与在 Java 上运行的速度一样快。 由于 Kotlin 支持内联函数,使用“lambda”,应用程序通常运行得更快。

在 Android Studio 3.0 中,您可以选择在 Kotlin 中创建活动。 开始使用 kotlin 的最简单方法是自动将 Java 转换为 Kotlin。 您可以用 Java 编写,然后将 Java 代码复制粘贴到 kotlin 文件中,它会建议转换。

将 Java 文件转换为 Kotlin 的另一种简单方法:

Android Studio 菜单 >> 代码 >> 将 Java 文件转换为 Kotlin 文件

转换将是这种类型:

爪哇:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); } }

科特林:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) } }

配置 Kotlin 后,更新应用程序的 build.gradle 文件并实现如下所示:

安卓博客

安卓博客

最后,同步项目。 您可以单击“立即同步”。 这与 Java 中的工作方式完全相同。 您可以发布应用程序并对其进行签名,就像我们在 Java 中为 Android 应用程序所做的那样。

最后,Kotlin 编译器生成“字节码”,在 Android 应用程序的外观和感觉方面没有任何区别。

现在,让我们更多地了解 Kotlin 语法

  • 包定义:

    package com.example Import java.util.*

  • 定义变量:

    Int: Val a: Int = 3 // Immediate assignment Val b = 2 // “Int” type is Inferred Val c : Int // Type Required when no initializer is provided C = 3 // Deferred assignment

  • 细绳:

val firstName: String = "Raj" val lastName = "xyz" // still compile val dateOfBirth = "24th April, 1990" dateOfBirth = "28th July, 2000" // cannot be changed var car = "Toyota Matrix" car = "Mercedes-Maybach" // can be changed

“Val”和“Var”的区别

Val :是一个关键字,前者是不可变的或只读的(它的值不能改变)

Var :是一个关键字,其类型由编译器推断,分配不同类型的另一个值将不起作用。 换句话说,变量的值可以改变,但它的类型不能。

var age = 12 age = "12 years old" // Error: type mismatch val carName: String carName = "BMW Car" // will compile val carName = "Toyota", streetName = "Church street" // this won't compile // this will compile var carName = "Audi" var streetName = "Church street"

例子:

fun main(args: Array<String>) { val i = 10 println("i = $i") // prints "i = 10" } val accountBalance = 200 val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200

我们通过在变量名前使用 $ 字符来引用变量。 请注意,如果变量不正确或不存在,代码将无法编译。 您可以直接从内插字符串调用方法; 你必须添加花括号 ${} 来包装它。

val name = "Raj" val message = "The first letter in my name is ${name.first()}" // The first letter in my name is R

定义函数:

fun sum(a: Int, b: Int): Int { return a + b } fun main(args: Array<String>) { print("sum of 2 and 8 is ") println(sum(2, 8)) } // sum of 2 and 8 is 10

具有表达式主体和推断返回类型的函数:

fun sum(a: Int, b: Int) = a + b fun main(args: Array<String>) { println("sum of 18 and 24 is ${sum(18, 24)}") } // sum of 18 and 24 is 42

For循环:

fun main(args: Array<String>) { val items = listOf("apple", "banana", "Mango") for (item in items) { println(item) } } // apple banana Mango

使用集合:

Iterating over a collection: fun main(args: Array<String>) { val items = listOf("apple", "banana", "mango") for (item in items) { println(item) } } Checking if a collection contains an object using “in” operator: fun main(args: Array<String>) { val items = setOf("apple", "banana", "mango") when { "orange" in items -> println("juicy") "apple" in items -> println("apple is fine") } } // apple is fine

如何创建类的实例:

val customer = Customer() // No New Keyword

构造函数:

Kotlin 中的类可以有一个主构造函数和一个或多个辅助构造函数。 主构造函数是类头的一部分:它跟在类名之后

class Person constructor(firstName: String) { }

声明属性:

Kotlin 类具有属性。 这些可以使用“var”关键字声明为可变的,或者使用“val”关键字声明为只读。

例如:

class Address { var name: String = “” var street: String = “” var city: String = “” }

界面 :

Kotlin 中的接口与 Java 8 非常相似。它们可以包含抽象方法的声明以及方法实现。

接口是使用关键字 interface 定义的

interface MyInterface { fun bar() fun foo() { // optional body } }

实现接口:

class Child : MyInterface { override fun bar() { // body } }

一个类或对象可以实现一个或多个接口。

苏巴拉朱2018 年 6 月 28 日

苏巴拉朱2018 年 6 月 28 日

最近的博客

图片
自定义块预告片

在 Drupal 9 中以编程方式创建块 - 简要教程

图片
CKEditor 预告

让你的 Drupal 9 CKEditor 流行起来——7 个你不知道的有用模块

图片
Page Speed 预告片

为什么页面速度很重要以及如何让您的网站加载得更快!