美文网首页
kotlin学习笔记

kotlin学习笔记

作者: 在下陈小村 | 来源:发表于2020-12-29 17:49 被阅读0次

1.1kotlin简介:
JetBrains发布。

编译型语言:编译成2进制文件来执行,c,c++,
解释型语言:解释器读取源代码,解释成2进制数据来执行,python,javascript。

java和kotlin先编译成.class文件,再通过解释器解释成2进制数据来执行,所以是解释型。

kotlin相比于java加入了很多高级语法,100%兼容java。

1.2变量和函数
val定义不可变量,相当于java中的final
var定义可变的变量,相当于非final定义的变量

数据类型:kotlin放弃了基本数据类型,全部使用了对象数据类型。
Int,Long,Short,Float,Double,Boolean,Char,Byte

if条件判断默认返回最后一行

when类似java中switch,但是更加灵活,可以进行字符的处理。比如判断name.startWith();

循环语句
for,while,0..10表示[0,10]。0until 10表示[0,10)。step,表示步长,对应i++,i+2;downTo表示倒序。

1.3面向对象编程

对比java不用写new关键字来创建对象。不用写get,set。直接通过.属性来进行赋值和获取。
不能直接被继承,需要写object才能被继承。:Person(),表示继承Person类。
其实就是构造函数的简便写法。加不加()取决于有没有构造函数。

接口和java的差不多,多了一个默认实现方法。

可见性修饰符

java 含义 kotlin 含义
private 类内部可见 private 类内部可见
public 全局可见 public 全局可见
protected 当前类、子类、同一包路径下的类 protected 当前类、子类
默认 同一包路径下的类 默认public 全局可见
internal 同一模块下

数据类
在class前面加data就可以了,不用写get和set不用写equals、hashCode、toString方法。

data class Cellphone(val brand:String,val price:String)

单例
把class改为object。

1.4Lambda表达式
集合的创建和遍历
listof创建不可变集合

val list=listof("Apple","banana")

mutableListof()创建可变集合

val list=mutableListof("Apple","banana")
list.add("Pear")

setof创建set集合

mapof创建map集合

val map=mapof("Apple"to 1,"Banana" to 2)

1.5集合的函数式表达
list.maxby{it.length}
list.map遍历集合
list.filter过滤

1.6空指针检测
?可为空 ?.当不为空的时候执行,!!.非空断言,对象的let函数可以不用每次都?.

1.7字符串内嵌表达式
${}

1.8函数默认值

fun printParams(num:Int,str:String="hello"){
}

1.9标准函数和静态函数
with run apply
@JvmStatic,单例,companion object ,顶层方法。

1.10延迟初始化和密封类

lateinit
密封类就是列举了所有情况,条件判断的时候,不用写else了

1.11扩展函数和运算符重载

fun ClassName.methodName(param1:Int):Int{
}

运算符重载

operator fun plus(obj:Obj):Obj{
}

+是会编译成plus的

1.12高阶函数

1.12.1内联函数

相关文章

网友评论

      本文标题:kotlin学习笔记

      本文链接:https://www.haomeiwen.com/subject/mcjtoktx.html