【Scala】08 模式匹配 Match Case】的更多相关文章

样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定. //样本类case class //层级包括一个抽象基类Expr和四个子类,每个代表一种表达式 //样本类自动添加与类名一致的工厂方法 abstract class Expr case class Var(name:String) extends Expr//括号内参数不用加val,默认为加val的字段 case class Number(num:Double) extends Expr…
模式匹配的简介 scala语言里的模式匹配可以看作是java语言中switch语句的改进. 模式匹配的类型 包括:常量模式.变量模式.构造器模式.序列模式.元组模式以及变量绑定模式等. 常量模式匹配 常量模式匹配,就是在模式匹配中匹配常量啦. objectConstantPattern{ def main(args:Array[String]) :Unit = { //模式匹配结果作为函数返回值 defpatternShow(x : Any) = x match { case 5 => "…
文章来自:http://www.cnblogs.com/hark0623/p/4196261.html   转载请注明 代码如下: /** * 模式匹配 */ case class Class1(param1: String, param2: String) case class Class2(param1: String) object Case { def main(args: Array[String]) { //通过模式匹配进行条件判断 val test1: String = "1&qu…
一. 操作符 自定义操作符 操作付默认左结合调用.除了以:结尾的操作符是右结合调用 object OperaterTest extends App{ val a: myInt = new myInt(1) val b: myInt = new myInt(2) val c: myInt = new myInt(3) println(a +++ b) println((c---:b---:a).value) //:结尾的操作符右结合,相当于(a.---:(b)).---:(c) = 1-2-3 }…
一. scala 模式匹配(pattern matching) pattern matching 可以说是 scala 中十分强大的一个语言特性,当然这不是 scala 独有的,但这不妨碍它成为 scala 的语言的一大利器. scala 的 pattern matching 是类似这样的, e match { case Pattern1 => do Something case Pattern2 if-clause => do others ... } 其中,变量 e 后面接一个 match…
Scala的模式匹配是通过match表达式从若干可选项中选择,类似Java中的switch. 例子: val firstArg = if(args.length>0) args(0) else "" firstArg match{ case "salt" => println("pepper"); case "chips" => println("salsa"); case "e…
前言 首先.我们要在一開始强调一件非常重要的事:Scala的模式匹配发生在但绝不仅限于发生在match case语句块中.这是Scala模式匹配之所以重要且实用的一个关键因素!我们会在文章的后半部分具体地讨论这一点. 本文原文出处: http://blog.csdn.net/bluishglc/article/details/51056230 严禁不论什么形式的转载.否则将托付CSDN官方维护权益. 模式匹配的种类 在Scala中一共同拥有例如以下几种类型的模式匹配: 通配符匹配(Wildcar…
模式匹配的类型 包括: 常量模式 变量模式 构造器模式 序列模式 元组模式 变量绑定模式等. 常量模式匹配 常量模式匹配,就是在模式匹配中匹配常量 objectConstantPattern{ def main(args:Array[String]) :Unit = { //模式匹配结果作为函数返回值 defpatternShow(x : Any) = x match { => "五" case true => "真" case "test&q…
scala模式匹配 1.基础match case(类似java里switch case,但功能强大些) object MatchApp { def main(args: Array[String]): Unit = { val is = Array("a","b","c","d") val i = is(Random.nextInt(is.length))//随机取数组中的一个值 i match { case "a&…
再来看一下之前的一段代码: def process(input: Any) { input match { case (a: Int, b: Int) => println("Processing (int, int)... ") case (a: Double, b: Double) => println("Processing (double, double)... ") case msg: Int if (msg > 1000000) =&g…