gpt4 book ai didi

scala - 如何在模式匹配中获取 list

转载 作者:行者123 更新时间:2023-12-01 23:13:59 26 4
gpt4 key购买 nike

我想像下面这样获取一个 List 的内部类型的 list 并将其传递给另一个函数,我该怎么做?谢谢

  def f(any: Any) = any match {
case x: Int => println("Int")
case a: List[_] => // get the manifest of List's inner type, and use it in the function g()
}

def g[T:Manifest](list:List[T]) = {}

最佳答案

将 list 作为隐式要求添加到您的方法中,并稍微调整类型签名:

def f[T](any: T)(implicit mf: Manifest[T]) = mf match {
case m if m == Manifest[Int] => println("Int")
case m if m == Manifest[List[Int]] => println("List of Ints")
//etc...
}

Manifest 类有一个方法,typeArguments,它应该可以满足您查找“内部类型”的目的。例如

manifest[List[Int]].typeArguments == List(manifest[Int])

关于scala - 如何在模式匹配中获取 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16277346/

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