Kotlin学习笔记之 3

作者 : 开心源码 本文共1463个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共177人阅读

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是可以putget的,但是在kotlin中,Map是只读的映射,需要修改映射我们要使用到MutableMap。而一般取得到MutableMap最容易的方式就是调用MaptoMutableMap方法。由于通过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

发表回复