gpt4 book ai didi

Scala 宏 : How to get a Type object of a generic List

转载 作者:行者123 更新时间:2023-12-02 21:36:52 24 4
gpt4 key购买 nike

我正在开发一个 Scala 宏,我希望将 Symbol 的类型与 List[T] 相匹配,其中 T code> 是给定的类型。我已经有了 T 类型参数的 Type 对象。

获取List[_]的Type对象很简单:

  val listType = c.weakTypeOf[List[_]]

有了这个我已经可以检查 typeSignature

  sourceParam.typeSignature match {
case paramType if paramType <:< listType =>
....
}

但是我想用 List[T] 检查 paramType,那么如何在使用 List[_] 和一些 Type 的地方创建一个类型 对象并使其成为一个新类型?

最佳答案

scala> val tpeList = typeOf[List[_]]
tpeList: reflect.runtime.universe.Type = scala.List[_]

scala> appliedType(tpeList, List(typeOf[Int]))
res0: reflect.runtime.universe.Type = scala.List[Int]

关于Scala 宏 : How to get a Type object of a generic List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21164811/

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