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相同
Type | Bit 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){ }
- 首先如果一个类如果一个类不是抽象的,那么如果要被其他类要继承,那么这个类就要在定义时用open关键字表明,该类中需要被继承的方法也要有open关键字修饰。
- 子类继承的父类写在子类名称之后,用“:”隔开,最重要的一点就是,父类不能只写一个名称,而且要给其构造函数传参数。
以上就是我最近的学习心得,很多细节没有描述,我会后续补充,以上内容供大家参考并批评指正。
在实际的项目编写过程中,kotlin代码与java代码可以共存,且可以相互调用,这就使得java工程师切换到kotlin可以更好的理解kotlin语法。其次kotlin工程师与java工程师可以共同开发一个项目,只要商定API,那么就不会相互影响。
以上是关于kotlin 学习心得的主要内容,如果未能解决你的问题,请参考以下文章
Android开发学习之路--Kotlin之Android开发使用心得和注意事项