kotlin处理集合:可变参数,中缀调用
可变参数
在kotlin中创建一个集合,可以往其中传递任意数量的参数进去。1
fun listOf<T>(vararg values:T):List<T>{...}
在kotlin中,是直接使用vararg来说修饰可变参数的。
而且kotlin和java的另一个区别就是java中,你可以按照原样传递某个数组进去,而kotlin需要你显式的对这个数组进行解包操作。例如1
2
3val list1 = listOf("1","2")
val list2 = listOf(*list1,"3")
//最后list2的结果为["1","2","3"]这个功能被称为展开运算符
中缀调用和解构声明
在kotlin中,创建一个map1
val map = mapOf(1 to "One",2 to "Two")
这里的
to
就是不是一直欧冠你内置的结构,而是一种特殊的函数调用,被称为中缀调用。
在kotlin中他有一个有与java不同的类,Pair
,他用来表示一对元素而且他和to都用到了泛型。1
21.to("one")//一般to函数的调用
1 to "one"//使用中缀符号调用to函数如果需要使用中缀符号,那么需要使用
infix
修饰符来标记1
infix fun Any.to(other:Any) = Pair(this,other)
而解构声明就是把把Pair展开,用来初始化两个变量
1
val (number,name) = 1 to "one"
同样的,对于使用withIndex的数列也一样可行
如:1
2
3for((index,element) in collection.withIndex()){
...
}字符分割和正则表达式
相比与java中的split分割方法,kotlin对他进行了重写,使他更为直观。- 可以直接通过任意数量的纯文本字符串进行分割,也就是直接调用split方法
- 采用正则表达式进行分割,kotlin在这引入了一个新类型,
Regex
,他可以将字符串转化为正则表达式,然后在split()函数中传入这个Regex,例如:\.是用来转义的,因为.在正则中表示,任意的字面量1
2println("12.346-A".split("\\.|-".toRegex()))
//输出结果为[12,346,A]
局部函数
他的简单理解就是在函数中,将重复的代码提取成一个函数内的函数,化简代码。
而且这个局部函数也可以扩展到外面。
做了扩展的局部函数保证了,即便是同一个类,只有在某些时候,才能使用他的方法,比如验证过程,日志过程,就不需要该类在任意时刻都被用到
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论