在从事教育工作多年之后,我成为了一名专业的软件开发人员。这让我接触到了 Java,但最近,我开始享受一种完全不同但兼容的编程语言,名为 Kotlin。
Kotlin 是一种跨平台、通用编程语言,它运行在 Java 虚拟机 (JVM) 上。 JetBrains 在 2010 年开始领导其实现,并且自开发初期以来一直是开源的。
对于 Java 开发人员来说,好消息是 Kotlin 与 Java 具有互操作性。 标准 Java 代码可以包含在 Kotlin 程序中,Kotlin 也可以包含在 Java 程序中。 这种对兼容性的巨大投入意味着,如果您具有 Java 背景,那么上手 Kotlin 会感到熟悉,并且风险很低,因为它将与您的任何现有 Java 代码一起运行。
为了向您介绍 Kotlin,我将介绍它的一些基本语法,从变量到定义函数和类。 如果你想跟随学习该语言的一些特性,有一个很棒的基于浏览器的 Kotlin playground 可以使用。
变量
Kotlin 中的变量会让你感到熟悉。 以下是一些创建基本整数的示例
var I = 5
val j = 7
var k:Int = 8
var
和 val
赋值之间存在细微但重要的区别:var
用于您可以重新赋值的变量,而 val
用于不会更改的局部范围值。 每个变量的类型都是可选的,因为可以推断出类型,类似于 JavaScript 中的动态赋值。 还有可空赋值,它使用如下语法
var f: Int? = 9
这意味着分配的值可以等于 null。 使用 null 的原因超出了本文的范围,但重要的是要知道,只有在明确定义变量等于 null 时,该变量才能等于 null。
如果您计划定义一个没有初始实例化(值)的变量,则必须将类型放在变量名之后
var s: Int
字符串的组成方式类似,类型也位于变量名之后
val a:String = "Hello"
字符串在 Kotlin 中具有超能力。 它们包括很棒的字符串模板函数,您可以探索。
数组
另一种基本类型是数组。 它可以存储预先确定数量的相同定义类型的对象。 在 Kotlin 中,有几种不同的方法来创建数组,例如
val arrA = arrayOf(1,2,3)
val arrB = arrayOfNulls<Int?>(3)
val arrC = Array<Int?>(3){5}
第一个创建一个长度为 3 的数组,元素为 1、2 和 3; 第二个创建一个类型为可空整数的 null 数组; 第三个创建一个可空整数数组,每个元素都等于 5。
要检索其中一个元素,请使用括号表示法,从零开始。 因此,要检索第一个数组中的第一个元素,请使用:arrA[0]
。
集合
在 Kotlin 中分组对象的其他方法通常称为集合。 Kotlin 中有几种类型的集合。 每种都可以是可变的(可更改/可写)或不可变的(只读)。
- 列表: 有序的项目组可以包含重复的项目,并且必须是相同的类型。 可以像这样形成可变列表
var mutList = mutableListOf(7,5,9,1) val readList = listOf(1,3,2)
- 映射: 映射类似于 Java 中的 HashMap,按键和值组织。 键必须不同。 它们像这样实例化
var mapMut = mutableMapOf(5 to "One", 6 to "Five" ) val mapRead = mapOf(1 to "Seven", 3 to "six")
- 集合: 集合是一种数据结构,其中组中的每个对象都是唯一的。 它们像这样创建
var setMut = mutableSetOf(1,3, 5, 2) val readSet = setOf(4,3,2)
每当您尝试重新分配不可变对象时,您将收到一条语法错误,指出 Val cannot be reassigned
。 当您有一个永远不希望被程序的任何部分编辑的集合时,此行为会派上用场。
函数
函数是良好软件程序的基础。 存储为函数的可重复代码位可以重用,而无需一遍又一遍地重写相同的命令。 在 Kotlin 中,创建函数的标准语法是
fun doSomething(param1:String): Unit{
println("This function is doing something!");
}
此示例函数接受一个字符串作为唯一参数; 正如您所看到的,参数类型放在参数名称之后。 当函数不返回值时,Unit 对象是 Kotlin 中等效于 Java 的 void(虽然 Unit 是一个值——并且只有一个值——因为它是一个单例)。 Kotlin 函数的工作方式与 Java 和其他一些语言中的函数非常相似。
类
Kotlin 中的类与其他面向对象编程 (OOP) 语言中的类非常相似,这些语言将对象/类视为基本构建块。 类使用以下语法创建
class ExampleClass{}
默认情况下,类具有一个主构造函数,可用于设置对象属性,而无需编写用于 getter/setter(访问器/修改器)的代码。 这使得创建对象并开始使用它变得容易,而无需太多样板代码。 主构造函数不能包含实现代码,只能包含参数
public class ExampleClass constructor(type:String)
要编写主构造函数实现,您可以在类中使用 init
init{
val internalType:String = type
}
或者您可以通过在每个参数前面放置 val
或 var
在构造函数中初始化它
public class ExampleClass constructor(var type:String, var size:Int)
尽管这并没有深入研究类、属性和可见性修饰符,但它应该让您开始在 Kotlin 中创建对象。
"main" 要点
Kotlin 文件具有 .kt
文件扩展名。 要开始运行 Kotlin 文件,编译器会在文件中查找 main
函数; 因此,一个基本的“Hello World”程序看起来像这样
fun main(args:Array<String>){
println("Hello World")
}
很简单,对吧?
Kotlin 是一种高级但直观的 OOP 语言,它可以简化和精简用于移动设备、服务器端、Web 和数据科学应用程序的 Java 开发。 我发现它的语法和配置比 Java 简单得多。
例如,比较 Java 中的 print
语句
System.out.println("Hi")
与 Kotlin 的语法对比
println("Hello")
此外,getter 和 setter 不需要额外的库即可进行简单实现。 在 Java 中,像 Lombok 这样的库通过注释简化了类/对象属性设置。 在 Kotlin 中,可以使用属性轻松实现类
class Person {
var firstName: String =""
var lastName: String =""
var age: Int? = null
var gender: String? = null
}
可以使用以下语法检索或设置这些属性
var me = Person()
me.firstName = “Stephon”
me.lastName = “Brown”
Kotlin 的简单性和 Java 互操作性意味着您花费时间学习无用的东西的风险很小。 在踏出 Kotlin 的第一步之后,您可能再也不会以相同的方式看待您的 Java 代码或 JVM。
7 条评论