Kotlin总结

2019-10-10  本文已影响0人  DanteAndroid

1.符号

fun Any?.toString(): String {
if (this == null) return "null"
// 空检测之后,“this”会⾃动转换为⾮空类型,所以下⾯的 toString()
// 解析为 Any 类的成员函数
return toString()
}

2 关键字

val menuFile = File("menu-file.txt") 
menuFile.setReadable(true) 
menuFile.setWritable(true) 
menuFile.setExecutable(false)

//用上 apply 函数,实现同样的配置时,代码简洁多了:
val menuFile = File("menu-file.txt").apply { 
setReadable(true) 
setWritable(true) 
setExecutable(false) 
}
val firstItemSquared = listOf(1,2,3).first().let {
 it * it 
}

//如果不用 let 函数,那么你需要把第一个数赋给一个变量,然后操作变量:

val firstElement = listOf(1,2,3).first() 
val firstItemSquared = firstElement * firstElement

object.let{
   it.todo()//在函数体内使用it替代object对象去访问其公有的属性和方法
   ...
}

//另一种用途 判断object为null的操作
object?.let{//表示object不为null的条件下,才会去执行let函数体
   it.todo()
}

*also函数 和 let 函数功能相似。和 let 一样,also 也是把接收者作为值参传给 lambda。但有一点不同:also 返回接收者对象,而 let 返回 lambda 结果。

var fileContents: List<String> 
File("file.txt")
.also { 
print(it.name)
}.also { 
fileContents = it.readLines()
} }
val user = User("Kotlin", 1, "1111111")

    val result = user.run {
        println("my name is $name, I am $age years old, 
                 my phone number is $phoneNum")
        1000
    }
    println("result: $result")
 for (i in 1 until 5) {
        print(i) // 1234
 }
上一篇 下一篇

猜你喜欢

热点阅读