我知道堆叠溢出也有类似的问题。
但是,如果下面的任何简单解释都能在哪里找到,那就太好了。
val arr1 = Array.tabulate(5)( (_+65) )编译得很好。
val arr2 = Array.tabulate(5)( (_+65).toChar )是编译时错误。
另外,我想知道如何使用-Ytyper调试,如@som-snytt in Scala: missing parameter type中所描述的那样。
发布于 2015-08-15 14:38:03
编译器编译时:
Array.tabulate(5)( (_+65) )它将等于:
Array.tabulate(5)(x => (x + 65 ) )但以下方面:
Array.tabulate(5)( (_+65).toChar )它将扩展到一个匿名函数:
Array.tabulate(5)( (x => x + 65).toChar )编译器将在函数体中丢失x的上下文。
您可以使用scala -Ytyper-debug查看详细信息:
类型调试输出:
((x$1) => x$1.$plus(65)).toCharhttps://stackoverflow.com/questions/32025404
复制相似问题