gpt4 book ai didi

scala - scala 反射 API Type.dealias 有什么作用?

转载 作者:行者123 更新时间:2023-12-02 17:40:05 25 4
gpt4 key购买 nike

我有一个简单的代码,

case class Person(name: String, age:Int)
import scala.reflect.runtime.universe._
val t1 = typeOf[Person]
val t2 = t1.dealias
println(t1 == t2)

输出true,所以我想问一下Type.dealias是做什么用的?我应该什么时候使用它?一些代码示例会有帮助

我这么问是因为当我阅读 Spark 代码 ScalaReflection 时,它几乎总是在使用类型之前使用 dealias

最佳答案

类型别名看起来像

type Alias = Person

它声明了一个新类型Alias,它与Person相同。

dealias 解析这些别名,以便 typeOf[Alias].dealias 将返回 typeOf[Person]。由于 Person 不是别名,因此 typeOf[Person].dealias 不执行任何操作。

另请注意:

Type Equality can be checked with =:=. It's important to note that == should not be used to compare types for equality-- == can't check for type equality in the presence of type aliases, while =:= can.

关于scala - scala 反射 API Type.dealias 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51148684/

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