例如:

    castType match {
      case _: ByteType => datum.toByte
      case _: ShortType => datum.toShort
      case _: IntegerType => datum.toInt
      case _ => throw new RuntimeException(s"Unsupported type: ${castType.typeName}")
    }

到底是做什么的? ”是一个占位符,通常表示“匹配任何内容”,但是“:”有什么作用?以及如何处理“ByteType”类型?

最佳答案

case _ : ByteType =>表示匹配的对象必须是ByteType类型

整个match语句也可以写成一系列if语句:

if (castType.isInstanceOf[ByteType]) {
   datum.toByte
} else if (castType.isInstanceOf[....
...

但这是很丑陋的,不是吗?

关于scala - 案例_ : mean in scala是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30767360/

10-12 18:52