在AnyVal上进行编译时检查以进行分配?

时间:2016-11-17 17:09:37

标签: scala

Scala文档讨论AnyVal

When Allocation Is Necessary部分,提到:

case class P(val i: Int) extends AnyVal
val p = new P(3)
p match { // new P instantiated here
  case P(3) => println("Matched 3")
  case P(x) => println("Not 3")
}

是否有可能在编译时知道AnyVal是否需要分配,即放在堆而不是堆栈上?

此外,我想编写上面的代码,然后在编译时收到p match {导致分配的警告。

据我所知,分配违背了AnyVal的目的。

0 个答案:

没有答案