首页 > 其他分享 >kotlin 内部迭代和延迟计算

kotlin 内部迭代和延迟计算

时间:2022-11-13 17:34:26浏览次数:47  
标签:返回 false 迭代 kotlin numbers 数组 println true 延迟

一、内部的迭代函数

filter(e -> 返回true和false) 判断数值是否加入新的数组
map(e -> 返回调整e之后的值) 对数组中每个数进行调整,并存入新的数组
reduce(total, e -> 返回新的total) total是统计结果,e是当前遍历到参数;返回新的total作为数组下一个参数total
joinToString(", ") 将数组的每个值通过逗号连接起来
sum() 将数组的每个值相加
first() 返回数组的第一个值
last() 返回数组的最后一个值
flatten() 可以将二维的list转化为1维,如果三维转换为1维则需要两次调用该函数
flatMap{e -> listOf()} 是map和flatten的组合
sortedBy{e -> xxx} 对指定的参数进行从小到大排序
sortedByDescending{e -> xxx} 从大到小排序 

val numbers = listOf(10, 12, 15, 17, 18, 19)
numbers.filter{e -> e % 2 == 0}
.forEach{e -> print("$e, ")}

如上过滤出numbers中的偶数,然后通过forEach遍历所有的元素

val doubledEven = numbers.filter{it % 2 == 0}.map{it * 2}
// 过滤出偶数,并且每个偶数乘以2

 

2、none/any/all

none: 没有一个元素符合条件 则会返回true

any: 至少有一个元素符合条件 则会返回true

all: 所有元素都符合条件 则会返回true

val numbers = listOf(10, 12, 15, 17, 18, 19, 21)

println(numbers.none()) // false 因为numbers中有元素,所以返回false
println(numbers.any())  // true 因为numbers中至少有一个元素,所以返回true
println(numbers.none{it % 7 == 0}) // false  21能够被7整除,所以返回false
println(numbers.any{it % 7 == 0}) // true    21能够被7整除,所以返回true
println(numbers.all{it % 2 == 0}) // false   numbers列表中有奇数,所以返回false
println(listOf(2,4,6).all{it % 2 == 0}) // true    列表中的所有数值都能够被2整除,所有返回true

 

二、延迟计算

标签:返回,false,迭代,kotlin,numbers,数组,println,true,延迟
From: https://www.cnblogs.com/czwlinux/p/16886362.html

相关文章

  • 设计模式学习(十八):迭代器模式
    设计模式学习(十八):迭代器模式作者:Grey原文地址:博客园:设计模式学习(十八):迭代器模式CSDN:设计模式学习(十八):迭代器模式迭代器模式迭代器模式是一种行为型模式。迭代器最典......
  • 架构优化与业务迭代,你会怎么选?
    引子对于每个软件系统,我们都可以通过业务和架构两个维度来体现它的价值。尤其是软件开发人员,应该确保自己的系统在这两个维度上的实际价值都能长时间维持在很高的状态。不过......
  • DataLoader 每次迭代返回BatchEncoding还是dict类型依pytorch的版本而定
    发现DataLoader在不同的pytorch版本上,执行dataset的__item__会返回不同的效果。pytorch在1.12.1上,每一次迭代会返回BatchEncoding这个类型(可能会比这个版本低也......
  • MySQL备库复制延迟的原因及解决办法【转】
    背景今天有同事问我主从复制延迟会影响高可用切换的RTO怎么办,这个不需要做实验,我可以直接回答,所以有了以下赶鸭子的文章,都是一线运维经验之谈,建议四连:点赞、收藏、转发......
  • mmap_sew延迟问题
    最近项目上遇到一个延迟问题。问题的现象如下:  程序运行在arm上,linux版本是Linuxversion5.10.35-dirty(root@Newu)(aarch64-linux-gnu-gcc(Ubuntu9.4.0-1ubuntu......
  • kotlin lambda
    一、lambda表达式的语法{parameterlist->body}kotlin和java的lambda表达式的语法存在一定程度的差异:1、kotlin在通常的情况下不允许有return语句,而java则可以有零个......
  • 数值分析实验4:线性方程组的迭代法解法
    线性方程组的迭代法解法(一)实验目的与要求1.通过编程计算实践,理解体会古典迭代法的思想。2.通过编程计算实践,熟练各种算法的计算流程。3.通过各种方法对同一题目的求解,......
  • Android开发Compose版本、Kotlin 版本、KSP版本版本对应关系
    Android开发Compose版本、Kotlin版本、KSP版本版本对应关系是要遵循官方给出的,不然容易出锅甚至编译都不过,即使编译通过也可能导致潜在崩溃ComposeCompiler版本和兼......
  • Kotlin 中的 Lambda 与 Inline
    在Kotlin中,有很多很酷很实用的特性,比如Lambda和高阶函数,利用这些特性,我们可以更加快速的实现开发,提升效率。比如我们实现一个捕获Throwable,安全执行部分代码的高阶函数fun......
  • 探究Kotlin的局部方法
    在Kotlin中,定义方法很有趣,不仅仅因为方法的关键字是fun(function前几个字符),还是因为你会惊奇的发现,它允许我们在方法中定义方法。如下funmethodA(){funmethodB(){......