【发布时间】:2019-04-16 20:35:26
【问题描述】:
下面的构造有意义吗?使用它有什么好处吗?
final case class Id(uuid: UUID) extends AnyVal
根据我对上述构造的理解,在 here 描述的某些场景中,不必实例化 Id。但是我有一些疑问,因为我没有找到任何以 AnyRef 作为参数的示例。
【问题讨论】:
-
是的,它应该与
AnyRefs一起使用,请记住,在某些情况下它不起作用并且编译器最终会实例化一个类。但是,我从未见过它与 case class 一起使用,因为它通常与 implicit class 一起使用以提供零成本的扩展方法。 -
@LuisMiguelMejíaSuárez
extends AnyVal也用于案例类。 -
@DmytroMitin 哦,酷。你知道这是否仍然确保没有实例化?我假设它的作用是提供 case 类 以零成本提供 (如
copy) 的所有方法?或者是什么意图? -
@LuisMiguelMejíaSuárez 我猜
defs 没问题。