美文网首页Google力荐的现代语言Kotlin——学完你就会喜欢
Kotlin:返回和跳转其实还可以添加标签

Kotlin:返回和跳转其实还可以添加标签

作者: 1024工场 | 来源:发表于2017-09-10 18:10 被阅读12次

    一、返回和跳转


    1. Kotlin有三种结构跳转表达式:
    • return:默认从最直接包围它的函数或者匿名函数返回
    • break:终止最直接包含它的循环
    • continue:继续下一次直接包围它的循环
    1. 所有这些表达式都可以用作更大表达式的一部分
    //2.return表达式作为返回值,类型为Noting类型
    val s = person.name ?: return
    

    二、Break和Continu标签


    1. 在Kotlin中,任何表达式都可以用标签(label)来标记,标签格式位标识符后跟@
    2. 为一个表达式添加标签,只要在其前面加标签即可
    3. 可以使用标签限制break或者continuebreak跳转到标签指定的循环后面的执行点,continue继续标签指定的循环的下一次迭代;
    //1,2.为for循环添加标签loop@
    loop@ for (i in 1..100) {
        // ……
    }
    //3.break跳转到@loop标签指定的循环后面的执行点
    loop@ for (i in 1..100) {
        for (j in 1..100) {
            if (……) break@loop
        }
    }
    

    三、标签处返回


    1. 标签限制的return允许从外层函数返回
    2. 通常情况下使用隐士标签更方便,该标签和接受lambda的函数同名
    3. 可使用匿名函数替代lambda表达式,匿名函数内部return语句将从匿名函数本身返回
    4. 解析器优先选用标签限制的return
    //1.return原本从直接包围它的函数foo返回,由于添加了@lit标签则它会从lambda表达式返回
    fun foo() {
        ints.forEach lit@ {
            if (it == 0) return@lit
            print(it)
        }
    }
    //2.forEach为隐士标签,和forEach函数同名
    fun foo() {
        ints.forEach {
            if (it == 0) return@forEach
            print(it)
        }
    }
    //3.匿名函数fun(value:Int)替代lambda表达式,return从该匿名函数返回
    fun foo() {
        ints.forEach(fun(value: Int) {
            if (value == 0) return 
            print(value)
        })
    }
    //4.从标签@a返回1
    return@a 1
    

    1.新技术,新未来!尽在1024工场。时刻关注最前沿技术资讯,发布最棒技术博文!(甭客气!尽情的扫描或者长按!)

    1024工场服务号
    2.加入“Kotlin开发”QQ讨论群,一起学习一起Hi。(甭客气!尽情的扫描或者长按!)
    Kotlin开发群

    相关文章

      网友评论

        本文标题:Kotlin:返回和跳转其实还可以添加标签

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