scala之信息甄别、模式匹配

scala模式匹配

代码

import scala.util.Random

//做一个信息的甄别
object Patter2 {
  def main(args: Array[String]): Unit = {
      abstract class NotFaction
      //定义不同信息的样例类
      case class Email(send:String,title:String,body:String) extends NotFaction
      case class SMS(caller:String,message:String) extends NotFaction
      case class VoiceRecording(contactName:String,link:String) extends NotFaction
      //信息识别
      def showNotFaction(notifiction:NotFaction):String={
        notifiction match {
          case  Email(send, title,_)if(send=="张三")=>"you get a Email message from"+send
          case SMS(caller, message)=>"you get a SMS message from"+caller
          case VoiceRecording(contactName, link)=>"you get a VoiceRecording message from"+contactName
          case _=>"you get a message not important"
        }
      }
    //创建一条信息
    val email1=Email("张三","important","some xxixxxx")
    val email2=Email("李四","important","some xxixxxx")
     println(showNotFaction(email1))
    println(showNotFaction(email2))
    
   //类型匹配
    val arr=Array("Bob",2,3.4,'d')
    //随机取数组元素
    val obj=arr(Random.nextInt(4))
    println(obj)
    obj match{
      case x:Int=>println(x)
      case s:String=>println(s.toUpperCase())
      case d:Double =>println(Int.MaxValue)
      case _=>println("fail")
    }

  }
}

运行结果

you get a Email message from张三
you get a message not important
3.4
2147483647

Process finished with exit code 0
you get a Email message from张三
you get a message not important
d
fail

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值