【问题标题】:In Scala, how come `println(1,2)` works?在 Scala 中,“println(1,2)”是如何工作的?
【发布时间】:2010-08-19 20:54:08
【问题描述】:

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

def println (x : Any) : Unit

怎么会这样:

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

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

【问题讨论】:

    标签: scala tuples implicit-conversion


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2015-03-18
    • 2020-09-13
    • 2017-07-04
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多