经过多年的教育 ,我成为了专业的软件开发人员。 那使我开始使用Java ,但是最近,我开始享受一种完全不同但兼容的编程语言,称为Kotlin

自开发初期就开源

对于Java开发人员而言,好消息是Kotlin可与Java互操作。 标准Java代码可以包含在Kotlin程序中,而Kotlin可以包含在Java程序中。 兼容性方面的巨大投资意味着,如果您来自Java背景,那么选择Kotlin会让您感到熟悉并且风险很小,因为它将与您现有的任何Java代码一起运行。

为了向您介绍Kotlin,我将介绍其一些基本语法,从变量到定义函数和类。 如果您想继续学习该语言的某些功能,可以使用基于浏览器的Kotlin游乐场

变数

Kotlin中的变量会让您感到熟悉。 以下是一些创建基本整数的示例:


   
var I = 5
val j = 7
var k : Int = 8

varval分配之间有一个细微而重要的区别:当可以重新分配您定义的变量时使用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的整数类型的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是一个值,并且只有一个值,因为它是单例),所以Unit对象是Kotlin,等效于Java的void 。 Kotlin函数的工作方式与使用Java和其他一些语言时一样。

班级

Kotlin中的类与其他将对象/类视为基础构建块的面向对象编程(OOP)语言中的类非常相似。 使用以下语法创建类:

 class ExampleClass { } 

默认情况下,类拥有一个主要的构造函数,该构造函数可用于设置对象属性,而无需编写用于getter / setter(访问器/更改器)的代码。 这样就很容易创建对象并开始使用它,而无需太多样板代码。 主构造函数不能包含实现代码,只能包含参数:

public class ExampleClass constructor(type:String)

要编写主要的构造函数实现,可以在类中使用init


   
init{
val internalType:String = type
}

或者,您可以通过在每个参数前面放置valvar在构造函数中对其进行初始化:

 public class ExampleClass constructor ( var type : String , var size : Int ) 

尽管这没有深入到类,属性和可见性修改器中,但是它应该使您开始在Kotlin中创建对象。

“主要”点

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。

翻译自: https://opensource.com/article/20/6/java-kotlin

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐