Kotlin学习笔记之 3
3.条件控制
if 表达式
kotlin中可以更加简便的使用 if语句进行赋值
var i = if(a > b) 1 else 2var i2 = if(a > b) { print("Choose a") a } else { print("Choose b") b }
when的使用
when
在kotlin中,就是用来替代switch
的,如下:when (x) { 1,0 -> print("1 or 0") in 1..10 -> print("x is in the range") in validNumbers -> print("x is valid") !in 10..20 -> { print("x is outside the range") } else -> print("none of the above")}fun hasPrefix(x: Any) = when(x) { is String -> x.startsWith("prefix") else -> false}when { x.isOdd() -> print("x is odd") x.isEven() -> print("x is even") else -> print("x is funny")}
一般和lambda结合使用,箭头左侧代表条件,箭头右侧代表返回结果,可以是代码段,可以是代码块,
else
就是switch
中的default
。上面极端代码比较易懂,基本大家看了就知道怎样回事了map
map初始化
一般我们使用
mapOf
方法进行初始化,方法中使用to
关键字代表关系```jsval map = mapOf("a" to 1, "b" to 2, "c" to 3)```
map遍历
kotlin中遍历map将变得特别方便
var map = mapOf( "1" to 2, "3" to 4) for((k,v) in map){ ... }
map访问
我们直接使用
["key"]
的形式访问map
中的元素,在kotlin中我们比较少的去使用get
方法,由于它很好的帮我们做了封装,基本所有的集合类都可以直接通过[]
的方式进行访问。Map与MutableMap
在java中,
Map
是可以put
和get
的,但是在kotlin中,Map
是只读的映射,需要修改映射我们要使用到MutableMap
。而一般取得到MutableMap
最容易的方式就是调用Map
的toMutableMap
方法。由于通过mapOf
取得的方法都是Map
。这里需要着重说的一点是,假如我们直接通过系统自动的识别来认定属性的话,目前的几种封装
Map
都是可变Map
,前面说过一般能用不可变的Map
,就不用可变的集合类。@SinceKotlin("1.1") public actual typealias ArrayList<E> = java.util.ArrayList<E>@SinceKotlin("1.1") public actual typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V>@SinceKotlin("1.1") public actual typealias HashMap<K, V> = java.util.HashMap<K, V>@SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E>@SinceKotlin("1.1") public actual typealias HashSet<E> = java.util.HashSet<E>
我们看到,这几个kotlin的对象,最终都是来自于java类,当然是就可访问又可以修改啦。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Kotlin学习笔记之 3
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Kotlin学习笔记之 3