您的位置:首页 > 其它

Kotlin基础教程-返回值和跳转

2017-05-31 23:32 162 查看
Returns and Jumps

和java类似,Kotlin中有3中跳转语句

return

break

continue

break和continue标签

我们可以给任何表达式起一个别名,kotlin称这个为标签。

拿之前的for循环语句举例

doctorq@for (index in array.indices) {
println(index)
}


我给这个for循环加了个标签,标签以@为后缀

doctorq@ for (i in 1..100) {
doctorq2@ for (j in 1..100) {
if (i > j) break@doctorq2

if (i == 50) break@doctorq
}
}


标签的作用,可以使得跳转到的位置十分明确,不用再纠结在嵌套for循环中,有跳转到哪里的疑惑。而且也可以随意选择跳转到什么地方,比java的for循环方便多了。

return上的标签

在一些嵌套函数中,需要return返回一个值给外部的函数,这个时候就需要用到标签。特别是在lambda表达式中返回:

fun foo() {
ints.forEach {
if (it == 0) return
print(it)
}
}


上面的forEach语句,遇到0后,会直接返回。



如果想遇到0跳过,继续遍历下一个元素,这个时候无法使用
continue


fun foo(array:Array<Int>) {
array.forEach doctorq@{
if (it == 0) return@doctorq
println(it)
}
}




也可以使用
forEach
作为标签名字

fun foo() {
ints.forEach {
if (it == 0) return@forEach
print(it)
}
}


我们也可以使用匿名函数代替lambda表达式,匿名函数中的return返回到匿名函数本身。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: