Kotlin基础知识

1、Kotlin特点
  • 简洁,相对于Java语言,大大减少代码数量
  • 安全,在编译时期就处理了可能会产生的空指针异常,若产生空指针编译不会通过
1、let、also、apply、run、with之间的区别?
函数名定义参数返回值是否扩展函数
letfun <T, R> T.let(block: (T) -> R): R = block(this)it闭包形式返回
alsofun T.also(block: (T) -> Unit): T { block(this); return this }it返回this
applyfun T.apply(block: T.() -> Unit): T { block(); return this }this返回this
runfun <T, R> T.run(block: T.() -> R): R = block()this闭包形式返回
withfun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()this闭包形式返回
2、Kotlin 中 List 与 MutableList 的区别?
  • List:有序接口,只能读取,不能更改元素;
  • MutableList:有序接口,可以读写与更改、删除、增加元素。
3、Kotlin中 Unit 类型的作用以及与Java中 Void 的区别?
  • 在java中,必须指定返回类型,即void不能省略,但是在kotlin中,如果返回为unit,可以省略。
  • java中void为一个关键字,但是在kotlin中unit是一个类。
4、Kotlin与Java混合开发时需要注意哪些问题?
  • Kotlin默认是非null类型,java返回null,kotlin需要添加? 表示可为null。
  • kotlin使用!! 时,要确认变量不为null, 不然会直接抛异常。
5、Kotlin的构造方法
  • 主构造函数
// 无权限修饰的时候constructor可以省略
class MyTest(name: String) {
    val name: String
    init {
        this.name = name
    }
}

// 有权限修饰的时候constructor不可以省略
class MyTest private constructor(val name: String) { 
    private val name;
    init {
       this.name = name
    }
}
  • 次构造函数
class MyTest {
    private var name;
    
    constructor(){ 
        
    }
    
    constructor(name: String){
        this.name = name;
    }
}
6、操作符
shl 相当于Java中的左移运算符 <<
shr 相当于Java中的右移运算符 >>
ushr 无符号右移,高位补0 >>>
and 按位与操作 &
or 按位或操作 |
xor 按位异或操作 ^
inv 按位取反 ~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值