博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scala模式匹配
阅读量:6405 次
发布时间:2019-06-23

本文共 1468 字,大约阅读时间需要 4 分钟。

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) } }

 

转载地址:http://iqjea.baihongyu.com/

你可能感兴趣的文章
linux下安装DB2的详细步骤
查看>>
fastdfs企业级分布式存储
查看>>
mysql
查看>>
十五周四次课
查看>>
linux文件系统
查看>>
tp5.0清除缓冲
查看>>
MapReduce案例
查看>>
配置路由器交换机管理ip
查看>>
Eclipse+Web3j开发以太坊应用
查看>>
[文摘]struts2:关于EL能够获得action的属性
查看>>
React 使用 linkState 组件
查看>>
SDN、NV在云数据中心的应用场景
查看>>
LOAD DATA INFILE
查看>>
QListWidget中右键单击Item出现菜单
查看>>
国内跨云端平台应用的大数据平台供应商,基于Hadoop的互联网大数据平台解决方案,武汉数道云...
查看>>
Solr查询详解
查看>>
java架构师高手必备的十种能力,全部掌握轻轻松松月入5万+
查看>>
小内存使用Docker部署多个应用实录
查看>>
shell习题-清理日志
查看>>
OpenGL OPenVG Freetype
查看>>