美文网首页
返回与跳转

返回与跳转

作者: codergege | 来源:发表于2018-11-20 22:24 被阅读0次

回到目录
项目源码 kotlin-basics 项目


break

break 用来结束循环, 默认只返回一层循环.

    @Test fun testBreak() {
        // 声明一个 list, Kotlin 中不需要 new 关键字的
        val list = ArrayList<Int>()
        for(a in 1..3) {
            for(b in 1..3) {
                list.add(b)
                if(b == 2)
                    break
            }
        }
        assertTrue(list.size == 6) // list 中应该是 1, 2, 1, 2, 1, 2
    }

可以用标签语法 label@ 标记位置, 然后用 break@label 指定返回位置.

    @Test fun testBreakLabel() {
        val list = ArrayList<Int>()
        outer@for(a in 1..3) {
            inner@for(b in 1..3) {
                list.add(b)
                if(b == 2)
                    break@outer // 跳出 outer 标签
            }
        }
        assertTrue(list.size == 2) // list 中应该是 1, 2
        assertTrue(list[0] == 1)
        assertTrue(list[1] == 2)
    }

continue 同理

return

return 用来返回函数结果. 下面的 forEach 接收一个类型为 (T) -> Unit 的参数.

    fun foo(): ArrayList<Int> {
        val list = ArrayList<Int>()
        (1..5).forEach lable@{
            if(it == 3) return@lable
            list.add(it) // list 里应该是 1, 2, 4, 5
        }
        return list
    }

    @Test fun testReturn() {
        val result = foo()
        assertEquals(4, result.size)        
        assertTrue(result[0] == 1)
        assertTrue(result[1] == 2)
    }

可以使用隐式标签, 与接收该 lambda 的函数同名:

 /**
     *  或者直接用隐式标签
     */
    fun bar(): ArrayList<Int> {
        val list = ArrayList<Int>()
        (1..5).forEach {
            if(it == 3) return@forEach // 与 forEach 同名
            list.add(it) // list 里应该是 1, 2, 4, 5
        }
        return list
    }
    @Test fun testReturnImpl() {
        val result = bar()
        assertEquals(4, result.size)
        assertTrue(result[0] == 1)
        assertTrue(result[1] == 2)
    }

也可以用匿名函数代替 lambda, 这时匿名函数内的 return 会返回到匿名函数的调用者.

回到目录

相关文章

  • 返回与跳转

    回到目录项目源码 kotlin-basics 项目 break break 用来结束循环, 默认只返回一层循环. ...

  • Flutter学习笔记十四——导航参数的传递和接收

    在上一篇Flutter学习笔记十三——页面跳转与返回中,学习了界面跳转与返回,类似Android中startAct...

  • Kotlin (返回与跳转)

    返回与跳转 Kotlin 有三种结构跳转表达式: -- return 默认情况下从最近的闭合函数或者匿名函数返回。...

  • 页面跳转与返回

    ———————— ———————————————————————— storyboard中的每个View Cont...

  • Kotlin返回与跳转

    借鉴kotlin中文站Kotlin 有三种结构化跳转表达式: return。默认从最直接包围它的函数或者匿名函数返...

  • Kotlin返回与跳转

    前言 你还在把Java当成Android官方开发语言吗?Kotlin了解一下! 2017年Google IO大会宣...

  • kotlin官方文档-2.4返回与跳转

    返回与跳转 Kotlin 有三种结构跳转表达式: -- return 默认情况下从最近的闭合函数或者匿名函数返回。...

  • kotlin学习笔记(七)

    返回与跳转 Kotlin 有三种结构跳转表达式: -- return -- break 结束最近的闭合循环 -- ...

  • Swift_借助presentingViewController

    先实现三个模态跳转需求。 1. A跳转B,并从B返回A 2. A跳转B,B跳转C,并从C返回A 3.A跳转B,B跳...

  • 路由跳转(非命名路由)

    单纯跳转: 路由传值跳转: 路由传值返回跳转:

网友评论

      本文标题:返回与跳转

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