Scala 使用模式匹配识别字符串

Scala identify string with pattern matching

我想知道如何避免将 Any 转换为 String 而是使用模式匹配。

已从 spark 收集数据帧 like df.select('column).first.toSeq.head 直接投射是一种解决方法 df.select('column).first.toSeq.head.asInstanceOf[String],但是 我更愿意使用像

这样的 scala 本机模式匹配
val collectedFromSpark: Any = "someString"
  val realString:String = collectedFromSpark match{
    case s:String => _
    case _ => throw new Exception("expected something else")
  }

然而,realString:String 只接收 Any 而不是 String

如何以 Scala 本机方式制定此转换?

将您的情况更改为:

case s: String => s

现在它会知道 sString