Kotlin 基础二

Kotlin 基础提升二

仅供于作为学习笔记,希望也能够给大家带来帮助,如果存在错误也请大家指正。

1.标准函数

apply

apply 函数中的代码块this 指向为调用者,并返回该调用者

    val file = File("E://i have a dream_copy.txt")
    file.setReadable(true)
    file.setWritable(true)
    file.setExecutable(false)

    val file2 = File("E://i have a dream_copy.txt")
    file2.apply {
        setReadable(true)
        setWritable(true)
        setExecutable(false)
    }

let

let 函数 能够使某个变量作用于lamda 表达式,让it 关键字能引用,并会返回表达式的最后一行给接收者

  //求集合第一个元素的平方
    val first = listOf(3, 2, 1).first().let {
        it * it
    }

    println(first)

run

run 函数和apply 类似,只是放回结果返回的是最后一行

    fun main() {
        "The people's republic of China。"
            .run (::isLong)
            .run(::showMessage)
            .run(::println)
    }

    fun isLong(name:String) = name.length >= 10

    fun showMessage(isLong: Boolean) = if (isLong) {
        "Name is too long."
    }else{
        "Please rename."
    }

with

with 函数和 run函数类似,只是with 函数需要把值作为参数传递

    "The people's republic ofChina".run {
        length >= 10
    }

    with("The people's republic ofChina"){
        length >= 10
    }

also

also 和 let 函数功能类似,只是also对象返回的是调用者对象

  var fileContents : List<String>
   val also:File = File("E://i have a dream.txt")
       .also { print(it.name) }
       .also { fileContents = it.readLines() }
   println(fileContents)

takeIf

takeIf 和其他标准函数不同,takeIf 先判断Lambda 提供的条件表达式,给出true 或者 false,结果为true 则返回调用者对象,如果为false则返回null

    val text = File("E://i have a dream.txt")
        .takeIf { it.exists() && it.canRead() }
        ?.readText()

    println(text)

takeUnIf

与takeIf 相反,takeIf 先判断Lambda 提供的条件表达式,给出true 或者 false,结果为true 则返回null,如果为false则返回调用者对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值