美文网首页
Android kotlin 替代 if...else... 语

Android kotlin 替代 if...else... 语

作者: JarryLeo | 来源:发表于2019-05-30 11:25 被阅读0次

    新建一个kt文件复制以下代码:

    
    inline infix fun Boolean.trueLet(trueBlock: Boolean.() -> Unit): Else {
        if (this) {
            trueBlock()
            return NotDoElse(this)
        }
        return DoElse(this)
    }
    
    inline infix fun Boolean.falseLet(falseBlock: Boolean.() -> Unit): Else {
        if (!this) {
            falseBlock()
            return NotDoElse(this)
        }
        return DoElse(this)
    }
    
    interface Else {
        infix fun elseLet(elseBlock: Boolean.() -> Unit)
    }
    
    class DoElse(private val boolean: Boolean) : Else {
        override infix fun elseLet(elseBlock: Boolean.() -> Unit) {
            elseBlock(boolean)
        }
    }
    
    class NotDoElse(private val boolean: Boolean) : Else {
        override infix fun elseLet(elseBlock: Boolean.() -> Unit) {
        }
    }
    
    

    用法:

    //原生写法
            if (a > 1) {
                println("执行操作")
            }
            //替代if写法
            (a > 1).trueLet { println("执行操作") }
            
            //原生写法
            if (a != 1) {
                println("执行操作")
            }
            //替代if写法
            (a == 1).falseLet { println("执行操作") }
            
            //原生写法
            if (a < 1) {
                println("执行true操作")
            }else{
                println("执行else操作")
            }
            
            //替代if写法
            (a < 1).trueLet { println("执行true操作") }.elseLet { println("执行else操作") }
    

    相关文章

      网友评论

          本文标题:Android kotlin 替代 if...else... 语

          本文链接:https://www.haomeiwen.com/subject/enemtctx.html