for ((key, value) in map) { if (key == "two") { break // 退出循环 } println("$key -> $value") } 1. 2. 3. 4. 5. 6. 7. 8. 2、 使用标签和forEach: val map = hashMapOf("one" to 1, "two" to 2, "three" to 3) run loop@{ map.forEach { (key, value) -> i...
return@forEach,相当于Java的 continue; return,相当于Java 的return; continue,在这里是不合法的; funforTest(){vallist=mutableListOf(1,2,3,4,5)list.forEach{if(it==4){// return@forEach//相当于Java的 continuereturn//相当于Java 的return}println("it=${it}")}println("outside")}...
总结一下,第一个例子break@tag可以直接打断整个循环。第二个例子continue@tag可以直接跳出内层不执行剩下的循环,回到最外层并继续循环。结合return初始代码:fun main(args: Array<String>) { val intArray = intArrayOf(1, 2, 3, 0, 4, 5, 6) intArray.forEach { if (it == 0) return print(it) ...
数组的定义我们可以通过arrayOf或者Array的构造函数的方式,遍历我们可以通过Array类的forEach()方法 val a: Array<String> = arrayOf("a", "b", "c") val b: Array<Int> = arrayOf(1, 2, 3) val c = Array(5) { i -> (i * i).toString() } a.forEach { println(it) } b.forEac...
for(i in 1..10){ println(i)}//简写代码为(1..10).forEach { println(it)} 1. 2. 3. 4. 5. 6. 3.4 while循环 while 和 do…while循环语句的使用方式与C、Java语言基本一致,所以跳过 3.5 continue和break 和Java中的continue和break基本一致,所以跳过 ...
1public inline fun<T>Array<outT>.forEach(action:(T)->Unit):Unit{2for(elementinthis)action(element)3} 首先我们可以知道,forEach是Array的扩展函数,然后参数是action,但是action不再像和我们以前Java那样传递的是一个对象,这时传递的是一个函数。这个函数的入参为T,返回值为Unit。所以forEach也是一个高阶...
(newElement)}//和上面一样,上面麻烦,map可以对集合进行操作,返回一个修改过得集合//flatmap,对集合的集合进行操作,省去了俩次遍历的麻烦val newList2=list.map{it*2+3}val newList3=list.map{Int::toDouble}newList3.forEach(::println)newList3.map(::println)//和上面输出一样,但是又重新add了一...
loop@ for (i in 1..100) { for (j in 1..100) { if (……) break@loop } } 上面的代码如果不加标签的话break只会跳出j的for循环,加上标签之后会跳出全部的循环 标签处返回, 我们先看一下下面的代码 fun foo() { listOf(1, 2, 3, 4, 5).forEach { ...
for (j in 1..100) { if (……) break@loop } } 上面的代码如果不加标签的话break只会跳出j的for循环,加上标签之后会跳出全部的循环 标签处返回, 我们先看一下下面的代码 fun foo() { listOf(1, 2, 3, 4, 5).forEach { if (it == 3) return // 非局部直接返回到 foo() 的调用者 prin...
instance.javaClass.declaredMethods.forEach{method->defineLiceFunction(method.name){/* 省略 */}} 来生成标准库(因为我要求函数名是+,-这种, Lisp 嘛),比起之前将每个标准库函数使用 Lambda 表示的作法,大大减少了编译生成的文件大小(165kb -> 100kb)。