package com.ming.test

/**
* 模式匹配
*/
object MatchTest { def main(args: Array[String]): Unit = {
//match 基本用法
var sign=3
var m='w'
var str='d'
var digit="dsafdsafdsaf"
m match{
case '+' => sign=10
case '-' => sign=100
case _ => sign=200
}
println(sign)
sign=m match{case '+' => 1000;case '-' => 10000;case _ => 1231}
println(sign) //带有守卫的匹配
sign=m match{case '+' => 12;case '-' =>23;case _ if Character.isDigit(m) =>2;case _ => 1000000}
println(sign)
//类型模式
//var a=obj match{case x:Int=>x;case s : String => Integer.parseInt(s);case _:BigInt=>Int.MaxValue;case _ => 0} //数组匹配
var array=Array(0,2)
val s=array match{
case Array(0)=>"0"
case Array(x,y)=>x+" "+ y
case Array(0,_*)=>"0 ......"
case _ =>"something else"
}
println(s) //匹配列表
val list=List(0,212,3)
var lst=list match{
case 0 :: Nil =>"0"
case x :: y ::Nil => x+" "+ y
case 0 :: tail => "0...."
case _ =>"something else"
}
println(lst) //元祖匹配
val yuanzu=(1,2,0)
var zu=yuanzu match{
case (0,_,1) => "0 ..."
case (y,0,0) => y+"0"
case _ => "neither is 0"
}
println(zu) //变量中声明中的模式
val (x,y)=(1,2);
println(x+y) //for 表达式中的模式
for((k,v)<-Map((1,""),(2,3)) if v !="")println(k+"->"+v) } }

最新文章

  1. windows系统如何添加ssh key到github
  2. ASP.NET Aries 开源开发框架:开发指南(一)
  3. [R语言]R语言使用多线程对数据库进行大批量访问时出现无法连接问题
  4. 关于安装Visual Studio 2015 RC版卡主不动的解决方案
  5. ios 在程序中使用iCloud
  6. 大数运算Swift
  7. DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案
  8. VIM下CS命令
  9. 今天开始自学Andrew Ng的机器学习,希望可以坚持下来
  10. 汉企C#面向对象——继承Practice
  11. 基于Struts2 的日志管理系统的Java实现
  12. (转)iOS Wow体验 - 第二章 - iOS用户体验解析(1)
  13. Android中的一些基础知识(二)
  14. Mapper XML Files详解
  15. 升级版本后报这个异常 : org.springframework.beans.factory.NoUniqueBeanDefinitionException
  16. 纯css实现横向下拉菜单
  17. THE MATRIX PROBLEM
  18. 用eNSP模拟
  19. Reactor和Proactor模式
  20. STSdb数据库的实现使用类

热门文章

  1. SpringMVC自动扫描@Controller注解的bean
  2. perl常见符号
  3. Android Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
  4. Oracle数据库之PL/SQL基础
  5. 入手Intel 750
  6. mySQL 教程 第7章 存储过程和函数
  7. static单利模式
  8. IOS 加载Xib 后 如何 动态修改xib中的控件frame
  9. zabbix服务器监控suse系统教程
  10. HTML中调用servlet的问题(?)