Scala中的case match语法

scala中的case语法与java中的switch语法类似,但比switch更强大:

例子一正则匹配:

val Pattern="(s.*)".r

    val v1="spark";

    val r=v1 match  {      
      case Pattern(v1)=> "begin s*"
      case "1"=> "1"
      case "2"=> "2"
      case _=> "default"
    }

    println(r) // begin s*

例子二等值匹配:

val v1=1

    val r=v1 match  {      
      case 1=> "1"
      case 2=> "2"
      case 3=> "3"
      case _=> "default"
    }

    println(r)// 1

例子三范围匹配:

val v1=3

    val r=v1 match  {     
     case v1 if 1 until 5 contains v1=> "1-5"
     case v1 if 5 until 10 contains v1=> "5-10"
     case _=> "not found"
    }

    println(r)//1-5

变形语法:

val v1=3

    val r=v1 match  {     
     case v1 if (v1>0 && v1<=5) => "1-5"
     case v1 if (v1>5 && v1<=10)=> "5-10"
     case _=> "not found"
    }

    println(r)

例子四多值匹配:

def glob(x:Any):Any= x match {    
    case   1 | "1" | "one"  => "one "
    case "two"=> 2
    case s:String => "String"
    case y:Int=>"Int 类型 "
    case _ => "其他"
  }
  
    println(glob(4))//Int 类型

最后祝大家节日快乐!

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2016-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏debugeeker的专栏

《coredump问题原理探究》Linux x86版6.3节有成员变量的类coredump例子

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

1371
来自专栏我的技术专栏

关于传值与传引用的讨论

对于用户自定义的类型来说,传引用一般要比传值高效。传引用不需要经过对象构造的过程,在《Effective C++》中作者举了个例子:

1105
来自专栏java学习

第3天的练习

大家把答案在留言区留下来 1:常见的算术运算符有哪些? +运算符的作用有哪些? 除法和取余的区别? ++和--的使用规则? 2:常见的赋值运算符有哪...

3557
来自专栏数据结构与算法

BZOJ4241: 历史研究(回滚莫队)

如果询问的两个端点在同一个块中,直接暴力计算,时间复杂度$O(\sqrt{n})$

1141
来自专栏codingforever

经典算法巡礼(一) -- 排序之冒泡排序

事实上,她重复地遍历需要排序的元素,一次比较相邻的两个元素,如果不满足预先定义的比较条件,则交换;否则继续下一组元素比较,直至遍历完成需要排序的所有元素。当然,...

402
来自专栏用户2442861的专栏

Python之逻辑运算和缩进和选择if

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

761
来自专栏Laoqi's Linux运维专列

python3–复习+正则

4718
来自专栏Bingo的深度学习杂货店

Q189 Rotate Array

Rotate an array of n elements to the right by k steps. For example, with n = 7 a...

3697
来自专栏梧雨北辰的开发录

Swift学习:泛型

本篇将详细总结介绍Swift泛型的用法; Swift泛型代码让你能够根据自定义的需求,编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用...

892
来自专栏我是攻城师

在Scala里面如何使用正则处理数据

3365

扫码关注云+社区

领取腾讯云代金券