【问题标题】:How does Scala know what method to invoke ( named parameters )Scala 如何知道调用什么方法(命名参数)
【发布时间】:2011-06-25 18:16:30
【问题描述】:
class Algo { 
    def a(  a : String = "Hola ",  b : String  = "adios" ) {
        print( a )
        print( b )
    }
    def a() { 
        print ("Uh?")
    }
}
object Algo { 
    def main( args : Array[String] ) { 
        new Algo().a()
    }
}

打印Uh?

如果未定义方法a(),代码将使用默认值打印“Hola adios”。

因此,我由此推断,如果一个精确的签名匹配,那是首选。

这个推理正确吗?

【问题讨论】:

    标签: scala named-parameters


    【解决方案1】:

    SID #1 第 3.1 节明确定义了此行为。

    重载解析在方法应用表达式中,当多个重载时 替代方案适用,使用默认参数的替代方案 从未被选中。

    【讨论】:

      【解决方案2】:

      是的。只有在没有找到合适的签名时才使用默认参数。

      this talk,有些人正是要求这个。

      【讨论】:

        猜你喜欢
        • 2011-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-30
        • 2016-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多