Kotlin学习笔记之 3 条件控制

Kotlin学习笔记之 3 条件控制_第1张图片

首发于公众号: DSGtalk1989

3.条件控制

  • if 表达式

    kotlin中可以更加简便的使用 if语句进行赋值

    var i = if(a > b) 1 else 2
    
    var 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关键字代表关系

      ```js
      val 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 = java.util.ArrayList
      @SinceKotlin("1.1") public actual typealias LinkedHashMap = java.util.LinkedHashMap
      @SinceKotlin("1.1") public actual typealias HashMap = java.util.HashMap
      @SinceKotlin("1.1") public actual typealias LinkedHashSet = java.util.LinkedHashSet
      @SinceKotlin("1.1") public actual typealias HashSet = java.util.HashSet
      

      我们看到,这几个kotlin的对象,最终都是来自于java类,当然是即可访问又可以修改啦。


Kotlin学习笔记之 1 基础语法

Kotlin学习笔记之 2 基本数据类型

Kotlin学习笔记之 3 条件控制

Kotlin学习笔记之 4 循环控制

Kotlin学习笔记之 5 类和对象

Kotlin学习笔记之 6 继承

Kotlin学习笔记之 7 接口

Kotlin学习笔记之 8 扩展

Kotlin学习笔记之 9 数据类与密封类

Kotlin学习笔记之 10 泛型

Kotlin学习笔记之 11 枚举类

Kotlin学习笔记之 12 对象表达式和对象声明

Kotlin学习笔记之 13 基础操作符run、with、let、also、apply

Kotlin学习笔记之 14 包与导入

Kotlin学习笔记之 15 伴生对象

Kotlin学习笔记之 16 委托

Kotlin学习笔记之 17 可观察属性

Kotlin学习笔记之 18 函数

Kotlin学习笔记之 19 高阶函数与 lambda 表达式

Kotlin学习笔记之 20 内联函数

Kotlin学习笔记之 21 解构声明

Kotlin学习笔记之 22 集合

Kotlin学习笔记之 23 相等判断

Kotlin学习笔记之 24 操作符重载

Kotlin学习笔记之 25 异常捕捉

Kotlin学习笔记之 26 反射

Kotlin学习笔记之 27 类型别名

Kotlin学习笔记之 28 协程基础

Kotlin学习笔记之 29 上下文与调度器

Kotlin学习笔记之 30 协程取消与超时

Kotlin学习笔记之 31 协程挂起函数的组合

Kotlin学习笔记之 32 协程异常处理

Kotlin学习笔记之 33 协程 & Retrofit

你可能感兴趣的:(Kotlin学习笔记之 3 条件控制)