java跳转kotlin页面_Kotlin:return与跳转

Kotlin有两种跳转:循环跳转(break与continue)和返回跳转(return)。

Label

label语法:labelName@

label可以放在任何表达式之前,用来标记表达式。如loop@ for (i in 1..100) {

// ...

}

break和continue

break和continue用于循环的跳转。break默认情况下跳出最近的循环语句。

continue默认为跳出最近循环语句当前的一次迭代,继续执行下一次迭代。

break示例for (i in 1..100) {

for (j in 1..100) {

if (...) break

}

}

break跳出了里面的for循环语句。

continue示例for (i in 1..100) {

for (j in 1..100) {

if (...) continue

}

}

continue跳出里面for循环语句的当前迭代,继续执行里面for循环语句的下一次迭代。

默认情况下,break和continue是以最近的循环语句跳转。在多个内嵌循环里,可以使用label来跳转。loop@ for (i in 1..100) {

for (j in 1..100) {

if (...) break@loop

}

}

与前面的break示例不同,此处break会跳出loop@标记的for循环。

return

return语句默认为跳出最近的函数。fun foo() {

ints.forEach {

if (it == 0) return

print(it)

}

}

在此示例里,return会跳出foo函数,而不是跳出forEach里的lambda表达式。

如果需要在lambda表达式返回有两种方法把lambda表达式改为匿名函数

结合label使用

匿名函数fun foo() {

ints.forEach(fun(value: Int) {

if (value == 0) return

print(value)

})

}

这里return跳出的是匿名函数,因为最近的函数为在forEach里定义的匿名函数。

结合label使用

结合label使用,可以让return在lambda表达式返回。fun foo() {

ints.forEach lit@ {

if (it == 0) return@lit

print(it)

}

}

此处在forEach里的lambda表达式返回。更简单的方法是使用调用lambda表达式的函数作为标签,如forEach

上面的例子等同于fun foo() {

ints.forEach {

if (it == 0) return@forEach

print(it)

}

}

return除了跳出指定的label外,也可以在跳出处返回一个值。return@a 1

这里的return表示在@a处返回1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值