- val kv = mapOf("a" to 1, "b" to 2)
这里的to就是一个中缀表达式,定义如下:
- public infix fun<A, B> A.to(that: B): Pair<A, B> = Pair(this, that)
Pair就是Map中存的对象,所以你也可以如许创建
- val kv = mapOf(Pair("a", 1), Pair("b", 2))
在Python中如不雅我们想让函数返回多个值,可以返回一个元组,Kotlin基于解构原则也可以实现类似的功能:
- fun main(args: Array) {
- val (index, count) = findWhere("abcabcabcabc", 'c')
- }
- fun findWhere(str: String, findChar: Char): Pair<Int, Int> {
- var index = -1
- var count = 0
- for ((i, v) in str.withIndex()) {
- if (v == findChar) {
- if (index == -1) {
- index = i
- }
- ++count
- }
- }
- return Pair(index, count)
- }
自定义对象若何支撑解构请查看官方文档,map支撑解构,所以可以像下面如许遍历:
- for ((k, v) in map) {
- print("$k -> $v, ")
- }
高阶函数与 Lambda 表达式
“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于个中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(留意和数学传统意义上的不合)。
推荐阅读
如不雅办事调用的缺点率高于预先设置的缺点率。 Circuit-breaker 的状况会大年夜 CLOSED 变成 OPEN(熔断状况)。 当 Circuit-breaker 状况为 OPEN 时,所有进来的请求会被阻拦。 过一段时光,会让一些单>>>详细阅读
本文标题:Kotlin函数与函数式编程浅析
地址:http://www.17bianji.com/lsqh/35653.html
1/2 1