Kotlin-Android世界的一股清流-优点&缺点

源码地址:https://github.com/cn-ljb/KotlinBlogs

这篇不聊具体的知识点,仅聊聊kotlin在开发中好的地方,以及博主自认为不好的地方。

优点

1、延迟加载(lazy)

初始化变量的时机被推迟到访问时,有了它真是方便了我们这些不注重内存效率的码农…
(lazy具体的实现在委托章节已经进行了详细讲解,不妨点进去看看它是怎么实现的)

//仅在被访问时,才会开辟10个元素大小的数组

val arr by lazy { Array(10, { i: Int -> i}) }

fun main(args: Array<String>) {

    arr.map {
        println(it)
    }
}

仅当你调用数组arr时,该数组才会被初始化出来。

2、getter/setter

首先Kotlin中我们不需要想Java那样手动的添加getter、setter方法了,这些Kotlin已经为我们做好了

3、with()函数简化代码

/*
* 通过with语句,可以直接将对象传入,省掉对象的声明
* 使用场景:当对一个变量要进行多次使用,并返回与该变量相关的结果
* */
fun alphabet4(): String {
    return with(StringBuilder()) {
        append("START\n")
        for (letter in 'A'..'Z') {
            append(letter)
        }
        append("\nEND")
        toString()
    }
}

4、apply()函数简化代码

/**
 *apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象
 * 使用场景:初始化变量,并对该变量域有操作时
 */
fun alphabet5() = StringBuilder().apply {
    append("START\n")
    for (letter in 'A'..'Z') {
        append(letter)
    }
    append("\nEND")
}.toString()