kotlin 中的枚举类和 “when”

作者: shenshizhong | 来源:发表于2017-09-14 01:21 被阅读347次

文章目录

  • 场景
  • 枚举类
  • when
  • 总结

场景

java 中的枚举类还有 switch 结构跟 kotlin 中的有什么不同,怎么更好更快的学习它们

枚举类

  • kotlin 枚举类的结构: enum + class + 类名
  • kotlin 是默认可见性,所以 public 可以省略
  • 注意:enum 在 kotlin 中,只有在 class 前面才是有特殊意义的(表示枚举)。

看下面 java 与kotlin 的对比

//java
public enum Colors {
    RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET
}
//kotlin
enum class Colors{
    RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET
}

when

  • 在 kotlin 中使用 when 取代 java 中的 switch 结构
  • 可以使用 lambda 表达式,简化代码
//java
package javas;

public class SwitchEnums {
    public static void main(String[] args){
        SwitchEnums switchEnums = new SwitchEnums();
        String chinese = switchEnums.getChinese(Colors.GREEN);
        System.out.println(chinese);

    }
    public String getChinese(Colors color){
        String strColor =null;
        switch(color){
            case RED:
                strColor = "红";
                break;
            case ORANGE:
                strColor = "橙";
                break;
            case YELLOW:
                strColor = "黄";
                break;
            case GREEN:
                strColor = "绿";
                break;
            case BLUE:
                strColor = "蓝";
                break;
            case INDIGO:
                strColor = "靛";
                break;
            case VIOLET:
                strColor = "紫";
                break;
            default:
        }
        return strColor;
    }
}

//kotlin
package kotlins

enum class Colors{
    RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, VIOLET
}

fun getChinese(color: Colors) =
        when(color){  //when 是一个有返回值的表达式,因此可以返回 when 表达式的 表达式函数
            Colors.RED -> "红"  //颜色和枚举常量相等,返回对应的字符串
            Colors.ORANGE -> "橙"
            Colors.YELLOW -> "黄"
            Colors.GREEN -> "绿"
            Colors.BLUE -> "蓝"
            Colors.INDIGO -> "靛"
            Colors.VIOLET -> "紫"
        }

fun main(args: Array<String>){
    println(getChinese(Colors.GREEN))
}

总结

  • kotlin 枚举类和 when 还是很容易掌握的
  • 比较中发现 kotlin 看起来简化好多代码,看起来更直观
  • 我们可以通过与熟悉的语言进行对比,更好更快的学习另外一门语言

如果对你有一点点帮助,请点个赞,你的鼓励就是我写作的动力。谢谢!
欢迎长按下图 -> 识别图中二维码 或者 扫一扫 关注我的公众号:

shenshizhong.png

我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

相关文章

  • kotlin 中的枚举类和 “when”

    文章目录场景枚举类when总结 场景 java 中的枚举类还有 switch 结构跟 kotlin 中的有什么不同...

  • Kotlin 枚举和 when

    前言 在接下来这章中,我们将会讨论 Kotlin 中的枚举和 when 结构。 枚举类 在 Java 中,声明一个...

  • Kotlin学习笔记之 11 枚举类

    11.Kotlin 枚举类 枚举类初始化关键字是enum,kotlin中的枚举类初始化可以有参数,比如:enum ...

  • 12.枚举

    由enum修饰的类 kotlin中枚举类可以有构造器以及成员方法 kotlin中enum类提供一些内置成员属性和方...

  • Kotlin面向对象 (6)枚举类

    枚举类构造函数枚举常用属性和函数 kotlin 中使用 enum 和 class 两个关键词声明枚举类。 枚举类使...

  • Kotlin语法小总结

    序 在看《Kotlin实战》时对一些点的总结和记录 1、三元表达式 2、枚举类 Java: 3、when (1)用...

  • Kotlin之枚举和''when'

    声明枚举类 声明简单的枚举 声明带属性的枚举,在每个常量创建的时候指定属性值 使用"when"处理枚举类 when...

  • kotlin语言学习04 ——kotlin特殊类和关键字

    kotlin中特殊类Any,特殊关键字is,when的用法 本小节主要讲解kotlin与Java中不同并且特殊类A...

  • Kotlin入门笔记一:方法、变量、类

    kotlin简介 Kotlin入门笔记一:方法、变量、类 Kotlin入门笔记二:when、for、in Kotl...

  • 三、Kotlin学习之枚举和When

    一、枚举 声明一个枚举类,enum是一个所谓的软关键字,只有出现在class之前才有特殊意义,否则就是一个普通的名...

网友评论

    本文标题:kotlin 中的枚举类和 “when”

    本文链接:https://www.haomeiwen.com/subject/igblsxtx.html