BoxedUnit与Scala中的单位

use*_*007 13 scala

Scala中的BoxedUnit和Unit有什么区别?它们什么时候用作函数的返回类型?他们与REF的关系是什么?这是我在处理Unit时遇到的类型不匹配错误.

错误:java.lang.AssertionError:断言失败:无法从单元hello.scala中的UNIT转换为REF(类BoxedUnit) - 源码//Users/shiyu/Scala/FinalDataFlow/src/print/hello.scala,line- 347,偏移量= 13999

sjr*_*jrd 12

Unit是唯一值的类型(),发音为"unit".

BoxedUnit是JVM上Scala 的实现细节,用于()在进入泛型上下文时进行编码,或以其他方式分配给Any.通常情况下,您不应该BoxedUnit首先听到,虽然它确实泄漏到某些用户级功能.例如((): Any).getClass().getName() == "scala.runtime.BoxedUnit".

也就是说,你得到的错误显然是编译器崩溃,正如所证明的那样AssertionError.这不是代码中的问题.如果它不在bug数据库中,您应该将此报告为错误.