scala学习笔记:match表达式

Scala模式匹配实践
本文通过两个实例展示了Scala中模式匹配的使用方法:一是基于不同类型的输入返回预定义字符串;二是解析自定义`Person`类实例并提取姓名。

写了一个超级长的表达式,估计不是最简洁的:

scala> def foo(ch:Any)=ch match { case true=>"male";case false=>"female";case i:Int if(i==0)=>"female";case i:Int if(i!=0)=>"female";case str:String=>if(str!="male"&&str!="female") "?" else str;case _=>"?"}
foo: (ch: Any)java.lang.String

scala> foo("female")
res14: java.lang.String = female

scala> foo("male")
res15: java.lang.String = male

scala> foo(1)
res16: java.lang.String = female

scala> foo(0)
res17: java.lang.String = female

scala> foo(true)
res18: java.lang.String = male

scala> 

再来个case class的:

scala> case class Person(name:String){val _name=name;}
defined class Person

scala> val p1=new Person("bluejoe")
p1: Person = Person(bluejoe)

scala> p1 match {case Person(name)=> name}
res24: String = bluejoe
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值