//Kotlin 循环控制
fun main(args : Array<String>){
// For 循环
// for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下:
var list = listOf("abc","bcd","efg","hij")
for(str in list) {
println(str)
}
for((index,value) in list.withIndex()){
println("the element at $index is $value")
}
for(i in list.indices){
println(list[i])
}
println("-------while-------")
var a = 5
while (a > 0){
println("a = ${a--}")
}
println("-----do while------")
while( a < 6){
println(" a = ${a++}")
}
// 返回和跳转
// Kotlin 有三种结构化跳转表达式:
// return。默认从最直接包围它的函数或者匿名函数返回。
// break。终止最直接包围它的循环。
// continue。继续下一次最直接包围它的循环。
// 在循环中 Kotlin 支持传统的 break 和 continue 操作符。
(1..10)
.filter { it != 3 }
.takeWhile { it <= 8 }
.forEach { println("i = $it") }
foo()
foo1()
println(foo2(2,3))
}
//标签处返回
//Kotlin 有函数字面量、局部函数和对象表达式。因此 Kotlin 的函数可以被嵌套。
//标签限制的 return 允许我们从外层函数返回。
//最重要的一个用途就是从 lambda 表达式中返回。回想一下我们这么写的时候:
fun foo(){
(1..10).forEach{
if(it == 6)
return
println("it = $it")
}
println("function is end")
}
fun foo1(){
(1..10).forEach abc@{
if(it == 6)
return@abc
println("it = $it")
}
println("function is end")
}
fun foo2(x:Int ,y :Int):Int{
abc@if(x<y) {
// 当要返一个回值的时候,解析器优先选用标签限制的 return,即
// 意为"从标签 @a 返回 1",而不是"返回一个标签标注的表达式 (@a 1)"。
return@abc 1
}
return 2
}
kotlin 第四站
最新推荐文章于 2024-08-08 16:18:05 发布