我知道在堆栈溢出中也有类似的问题。
但是,如果在某些地方可以找到以下简单说明,那就太好了。
val arr1 = Array.tabulate(5)( (_+65) )
编译良好。
val arr2 = Array.tabulate(5)( (_+65).toChar )
是编译时错误。
另外,我想知道如何使用-Ytyper调试如由@ SOM-snytt在斯卡拉:缺少参数类型
编译器编译时:
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)).toChar
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句