Scala如何知道要调用的方法(命名参数)

Osc*_*Ryz 5 scala named-parameters

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()
    }
}
Run Code Online (Sandbox Code Playgroud)

版画 Uh?

如果a()未定义方法,则代码使用默认值打印"Hola adios".

因此,我从中推断出,如果确切的签名匹配,那就是优先的.

这个推理是否正确?

Che*_*tEx 13

SID#1,3.1节中明确定义了此行为.

重载决策在方法应用程序表达式中,当多个重载替代项适用时,永远不会选择使用默认参数的替代方法.