1224

14 阅读1分钟

object Scala4 {
def main(args:Array[String]): Unit = {
  print(detProvinceName(11))
  print(detProvinceName(42))
  print(detProvinceName(12))

}
  def detProvinceName(code:Int):String = {
    code match {
      case 42 => "湖北"
      case 11 => "北京"
      case _ => "未知"
    }
  }
}
object Scala5 {
  object matchecase2 {
    def main(args: Array[String]): Unit = {
      val xiaoming = (100, 100, 100)
      val xiaohong = (99, 98)
      getscore(xiaoming)
      getscore(xiaohong)
      getscore((1,2,3,4))
    }

    def getscore(score: Any): Unit = {
      score match {
        // 先匹配二元组
        case t: Product if t.productArity == 2 =>
          println(s"元组中有两个元素: a = ${t.productElement(0)}, b = ${t.productElement(1)}")
        // 再匹配三元组
        case t: Product if t.productArity == 3 =>
          println(s"元组中有三个元素: a = ${t.productElement(0)}, b = ${t.productElement(1)}, c = ${t.productElement(2)}")
        // 其他情况
        case _ => println("未知")
      }
    }
  }
}
object Scala6 {

  case class Circle(radius: Double)

  case class Rectangle(width: Double, height: Double)


  def getArea(obj: Any): Unit = {
    obj match {
      case Circle(r) => println(s"圆形的面积是:${r * r * 3.14}")
      case Rectangle(w, h) => println(s"矩形的面积是:${w * h}")
      case _ => println("未知图形")
    }
  }


  def main(args: Array[String]): Unit = {
    getArea(Circle(2))       // 输出:圆形的面积是:12.56
    getArea(Rectangle(2, 3)) // 输出:矩形的面积是:6.0
    getArea("abc")           // 输出:未知图形
  }
}