9

在 Scala (2.7.7final) 中,该Predef.println方法被定义为具有以下签名:

def println (x : Any) : Unit

怎么会,那么以下工作:

scala> println(1,2)  
(1,2)

编译器是否会自动将逗号分隔的参数列表转换为元组?用什么魔法?这里是否有隐式转换,如果有,是哪一个?

4

1 回答 1

12

是的,如果没有合适的多参数方法和一个合适的单参数方法,编译器会尝试将逗号分隔的参数转换为元组。这不是隐式转换,只是编译器破解。这是一个有争议的功能,并且可能会在未来发生变化,因为计划围绕统一元组和参数列表的处理进行工作。

于 2010-08-19T20:57:18.170 回答