美文网首页
scala模式匹配

scala模式匹配

作者: high_m | 来源:发表于2017-10-30 19:21 被阅读0次

以下是常见的scala模式匹配实例。


variableName @ pattern

下面这个示例

abstract class A; // sealed abstract class A
case class B(a:Int) extends A;
case class C(a:Int) extends A;
case class D(a:Int) extends A;

val a:A = B(1);

a match {
 case e @ B(_) => println(e)
 case e @ C(_) => println(e)
}

模式匹配中case e @ B(_)就是模式匹配别名形式,实际匹配的模式是B(_),用变量e来等价替代,实际效果与case e : B是一样的。

再多说一句,抽象类A可以用sealed修饰。修饰后,表明A的子类只能在A类所在的文件内声明,不可以在文件外,这也正是sealed的封装之意。另外,模式匹配时编译器会强行检查是否已经匹配到了所有可能情况,若没有,会给出编译警告!

参考 Scala的sealed关键字

相关文章

  • Scala模式匹配及偏函数

    模式匹配公式: 一、代码Demo 二、Scala中的模式匹配处理异常 三、Scala函数

  • Scala学习笔记(八) 模式匹配

    1. 模式匹配简介 模式匹配是 Scala 的重要特性之一,前面两篇笔记Scala学习笔记(六) Scala的偏函...

  • Case Class与模式匹配

    模式匹配入门 在java语言中存在switch语句,例如: 上述scala代码展示了如何使用scala中的模式匹配...

  • scala模式匹配

    以下是常见的scala模式匹配实例。 variableName @ pattern 下面这个示例 模式匹配中cas...

  • scala模式匹配

    1.scala是匹配和java中的switch的区别: ...

  • scala 模式匹配

    scala的模式匹配与java的switch case相似,但是switch case只能对值进行判断,scala...

  • Scala 模式匹配

    样本类 case class 类前加上case修饰符,编译器会添加额外的语法,更好的支持模式匹配 添加与类名称相同...

  • Scala 模式匹配

    一、模式匹配基本使用 说明: => 后的代码可以写多行且不用 { } 模式匹配也是表达式,所以它也可以赋值给一个变...

  • scala模式匹配

    基本类型模式匹配 数组匹配 List匹配 类型匹配 case匹配 Some | None匹配

  • scala:模式匹配

    知识点: 模式匹配 提取器

网友评论

      本文标题:scala模式匹配

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