lin*_*lof 9 scala tuples implicit-conversion
在Scala(2.7.7final)中,该Predef.println方法被定义为具有以下签名:
def println (x : Any) : Unit
Run Code Online (Sandbox Code Playgroud)
怎么来,那么以下工作:
scala> println(1,2)
(1,2)
Run Code Online (Sandbox Code Playgroud)
编译器是否自动将以逗号分隔的参数列表转换为元组?通过什么魔术?这里是否存在隐式转换,如果是,那么哪一个?
Dav*_*ith 12
是的,如果没有合适的多参数方法和单个适当的单参数方法,编译器将尝试将逗号分隔的参数转换为元组.它不是一个隐式转换,只是一个编译器黑客.这是一个有点争议的特征,并且可能会继续发生变化,因为计划围绕统一元组和参数列表的处理工作.
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |