Kotlin little tips

实际上经过const修饰的的才是Java中理解的常量

kotlin判断字符串内容是否相等(equal)用“==”,判断两个字符串对象是否相等用“===”。

Kotlin的空安全设计对于声明可为空的参数,在使用时要进行空判断处理,有两种处理方式,字段后加!!像Java一样抛出空异常,另一种字段后加?可不做处理返回值为 null或配合?:做空判断处理

在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。

由于不同的表示方式,较小类型并不是较大类型的子类型,较小的类型不能隐式转换为较大的类型。 这意味着在不进行显式转换的情况下我们不能把 Byte 型值赋给一个 Int 变量。有些情况下也是可以使用自动类型转化的,前提是可以根据上下文环境推断出正确的数据类型而且数学操作符会做相应的重载。例如下面是正确的:

和 Java 不一样,Kotlin 中的 Char 不能直接和数字操作,Char 必需是单引号 ' 包含起来的。比如普通字符 '0','a'。

Kotlin中没有switch语句,使用when语句代替!!!是加强版的switch。

Kotlin for循环的几种使用方法 - 简书                                 Kotlin for循环的几种使用方法

构造内部类对象时,必须先构造外部类对象,而嵌套类则不需要。

嵌套类引用外部类私有变量要先创建外部类对象,内部类则不需要,可以直接通过  this@外部类名  引用。

要实现匿名内部类,必须使用object关键字。

嵌套类对应java中的静态内部类,内部类对应java中的非静态内部类。

子类继承父类时,不能有跟父类同名的变量,除非父类中该变量为 private,或者父类中该变量为 open 并且子类用 override 关键字重写!!!

接口中允许方法的默认实现。但接口中的属性只能是抽象的,不允许初始化值,接口不会保存属性值,实现接口时,必须重写属性。

Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式。

扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响。

使用CharArray比使用Array<Char>效率高,避免了不必要的装箱拆箱操作。

Uint相当于java中的void,函数没有返回值时其实返回的类型就是Uint。

函数的特殊用法:

lambda表达式当中方法的内容语句不是只能有一句,方法的返回值实际是方法中最后一条语句的返回值。

定义:

使用:

invoke可以省略。

调用函数时,如果一个函数的最后一个参数是lambda表达式,则可以将大括号移到小括号外面:

即: 可以变为:

如果小括号中什么都没有,还可以把小括号删掉,变为:

可以简化为:

在lambda表达式中return不是只是return表达式表示的方法,而是把表达式所在的方法return。

如:中,The End不会打印。

如果只是想return表达式,则需要在大括号外加标签:

java的匿名内部类只能继承一个类或实现一个接口,kotlin使用object实现匿名内部类时没有这种限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值