2011-06-09 65 views

回答

3

的Scala 2.9.0

如果该方法toHexString没有内部Byte编译器试图为一个隐式转换查询的类型与方法toHexString定义,但此时它没有运气和作为编译错误的原因。其实恕我直言RichByte应该定义一个toHexString方法(RichIntRichLong有它)。

斯卡拉2.8.1

我开始斯卡拉与scala -Xprint:jvm看什么编译器做:

scala> b.toHexString 

// ... cutted the unimportant parts 

scala.this.Predef.intWrapper(scala.this.Predef.byte2int(line4$object$$iw$$iw.b())).toHexString(); 

// ... cutted the unimportant parts 

正如我们所看到的第一个隐式转换byte2int适用,并在此之后,隐式转换intWrapper适用并返回RichInt的实例,其中定义了方法toHexString

但目前我不知道为什么这两个隐式转换是链接的,因为实际上Scala不允许链接隐式转换......任何人都可以点亮它?

+0

也许应该提交一个错误? – soc 2011-06-09 10:03:59

+0

它可能已经提交并在2.9中修复,这就是为什么它不再工作。或者我错了? – fresskoma 2011-06-09 16:33:04

相关问题