gpt4 book ai didi

scala - scala中的匹配类型

转载 作者:行者123 更新时间:2023-12-03 11:33:49 29 4
gpt4 key购买 nike

是否可以在 Scala 中匹配类型?像这样的东西:

  def apply[T] = T match {
case String => "you gave me a String",
case Array => "you gave me an Array"
case _ => "I don't know what type that is!"
}

(但这显然可以编译:))

或者也许正确的方法是类型重载……这可能吗?

不幸的是,我无法将对象的实例和模式匹配传递给它。

最佳答案

Manifest id 已弃用。但是你可以使用 TypeTag

import scala.reflect.runtime.universe._

def fn[R](r: R)(implicit tag: TypeTag[R]) {

typeOf(tag) match {
case t if t =:= typeOf[String] => "you gave me a String"
case t if t =:= typeOf[Array[_]] => "you gave me an Array"
case _ => "I don't know what type that is!"
}
}

希望这可以帮助。

关于scala - scala中的匹配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331095/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com