kotlin 学习心得

Posted arax

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin 学习心得相关的知识,希望对你有一定的参考价值。

最近kotlin越来越受欢迎了,好多网站预言--kotlin将在之后的几年里彻底替换到java,成为一种新的服务端编程语言。kotlin基于java。所以很多语法与java类似,从java切换到kotlin基本不需要成本。

最近在用kotlin在写一个项目,刚开始写代码感觉比较别扭,一旦用熟练后,再切换回java,就会感觉到java的语法有点累赘了。下面将使用kotlin中的心得分享给大家。

语法见:https://www.kotlincn.net/docs/reference/basic-types.html

太基础的语法参见上述链接,在博客中只写了作者在使用过程中感觉和java有较大差别的地方。

1,数据类型

kotlin中的数据类型和java相同

TypeBit width
Double 64
Float 32
Long 64
Int 32
Short 16
Byte 8

每个数字是有符号的。而且在kotlin中提供了很多数据类型相互转换的方法,例如

val valInt = 23 // 默认为Int类型
val valLong = valInt.toLong() // 将23 转换为Long类型
val valShort = valShort.toShort() // 将23 转换为Short类型
val valByte = valByte.toByte()   // 将23 转为Byte类型

上面是数据转型的例子,但是在Int转为Byte时,如果大于127,在Int转为Byte时,在转回Byte时会变成负数,这时候要加上256。java 中也存在这样的问题

下面介绍一下kotlin中对象的定义

val a = 10 // 定义不可变的int类型值a
var b = 20 // 定义可变的int类型值b
val c = IntArray(5) // 定义引用不可变的Int类型数组 c
var d = LongArray(8) // 定义引用可变的Long类型数组 d

首先可以看出在定义变量是不用再变量名称前写明变量的类型,其次在定义变量时不用使用new关键字。 

kotlin中默认的数值类型为int。

上面代码中最大的区别在于定义中的val,var。val代表值(对象则指引用)不可变,var代表值(对象则指引用)不可变。这些规则是在编译器检验的,如果在声明对象时,声明为val在后面的代码中,如果对该对象的值或引用做出修改,那么就会报错。这时需要将对象声明为var类型的。

for循环

在kotlin中如果写for循环,你会感觉是一件很开心的事,kotlin提供了很多类型的函数

for(i in 1 until n){
    // 不包含n
}
for(i in 1 ... n){
    // 包含n
}

for(i in n downto 0){
    // 向下遍历到0
}
for(i in 0 until 0 step 2){
    // 循环步长为2
}
(0 until n).forEach{ i->doSomeThing()}
// 最好用的for循环

2,类的定义

kotlin也是面向对象的语言,所以在语法中也有类的定义,在讲之前先解释一下权限修饰符。kotlin也包含和java中的public,private和protected这三个修饰符,但是在kotlin中类前 不写修饰符表示为public。除此之外kotlin中还存在另外一个修饰符:internal,这个修饰符表示只有模块内部才能访问。当你使用kotlin开发了一个模块,有些类定义为API,但是其中有些成员或函数,在自己的模块中的其他类可能会调用,但是又不希望使用你API的人调用,就可以使用internal修饰。

类的继承

类的定义在这里不再详细介绍,在这里只介绍一下类的继承时的父类中构造函数有参数的情况:

class open Demo constructor(name: String){
    private val name: String
    init{
        this.name = name // 单个构造函数时,构造函数体
    }
}

class SubDemo constructor(name: String) : Demo(name){
    
}
  1. 首先如果一个类如果一个类不是抽象的,那么如果要被其他类要继承,那么这个类就要在定义时用open关键字表明,该类中需要被继承的方法也要有open关键字修饰。
  2. 子类继承的父类写在子类名称之后,用“:”隔开,最重要的一点就是,父类不能只写一个名称,而且要给其构造函数传参数。

以上就是我最近的学习心得,很多细节没有描述,我会后续补充,以上内容供大家参考并批评指正。

在实际的项目编写过程中,kotlin代码与java代码可以共存,且可以相互调用,这就使得java工程师切换到kotlin可以更好的理解kotlin语法。其次kotlin工程师与java工程师可以共同开发一个项目,只要商定API,那么就不会相互影响。

 

以上是关于kotlin 学习心得的主要内容,如果未能解决你的问题,请参考以下文章

Android开发学习之路--Kotlin之Android开发使用心得和注意事项

Kotlin + Mvp + RxJava + Retrofit 心得体会

如何从片段 KOTLIN 中调用意图 [重复]

Javalucene4.0学习心得

如何在 Kotlin 片段内的按钮之间切换片段?

kotlin-从一个片段更改多个片段的小数位