在 Scala (2.7.7final) 中,Predef.println
方法被定义为具有以下签名:
def println (x : Any) : Unit
怎么会这样呢,那么下面的方法有效:
scala> println(1,2)
(1,2)
编译器是否自动将逗号分隔的参数列表转换为元组?用什么魔法?这里是否存在隐式转换,如果是,是哪一个?
是的,如果没有适当的多参数方法和一个适当的单参数方法,编译器将尝试将逗号分隔的参数转换为元组。这不是隐式转换,只是编译器黑客。这是一个有些争议的功能,并且未来可能会发生变化,因为工作计划围绕统一元组和参数列表的处理进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)