第13节:scala编程之模式匹配

package basics

/**
  * 模式匹配
  */
class DataFrameWork

case class ComputeionFramework(name: String, popular: Boolean) extends DataFrameWork {
}

case class StorageFramework() extends DataFrameWork


object HelloPattenMatch {
  def main(args: Array[String]): Unit = {
    /*getSalary("Hadoops")
    getSalary("test")
    getSalary("asdf", 20)

    getMatchType(100.0) //匹配数据类型

    getbigdatatype(ComputeionFramework("Spark", false))

    getMatchCollection(Array("scala"))*/

    getvalue("spark host", Map("spark host" -> "The hotts"))
  }

   //对字符串的匹配
  def getSalary(name: String) {
    name match {
      case "Spark" => println("10000")
      case "Java" => println("900")
      case "Hadoop" => println("1000")
      case _ if name == "test" => println("----")
      case _ => println("ssss") //代表其他
    }
  }

  def getSalary(name: String, age: Int) {
    name match {
      case "Spark" => println("10000")
      case "Java" => println("900")
      case "Hadoop" => println("1000")
      case _str if age >= 10 => println("uuuuu") //用变量的方式代表其他
      case _ => println("ssss") //代表其他
    }
  }
    //对数据类型的匹配
    def getMatchType(msg: Any) {
      msg match {
        case i: Int => println("Integer")
        case s: String => println("String")
        case d: Double => println("Double")
        case _ => println("other")
      }
    }

    //匹配集合中元素類型
    def getMatchCollection(msg: Array[String]) {
      msg match {
        case Array("scala") => println("one")
        case Array("scala", "java") => println("Two")
        case Array("scala", _*) => println("Many") //有很多元素
        case _ => println("other")
      }
    }

    //对类的匹配
    def getbigdatatype(data: DataFrameWork) {
      data match {
        case ComputeionFramework(name, false) =>
          println("直接匹配類" + name)
        case StorageFramework() =>
          println("1111")
        case _ => println("other")
      }
    }

    //对map的匹配
    def getvalue(key: String, content: Map[String, String]) {
      content.get(key) match {
        case Some(value) => //对option的匹配
          println("打印:" + value)
        case None => println("not found")
      }
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值