【发布时间】:2013-12-30 17:02:10
【问题描述】:
object Color {
def apply(r: Int, g: Int, b: Int, a: Int = 255): Color =
new Color(r, g, b, a)
def apply(r: Float, g: Float, b: Float): Color =
Color((r * 255).toInt, (g * 255).toInt, (b * 255).toInt)
}
在我看来,第二个 apply 应该执行第一个。但是,它会自行执行。如果我要删除可选参数,它会起作用。有没有办法解决这个问题?
【问题讨论】:
-
当你传递三个 Int 时它如何知道调用哪一个?它会选择更正确的那个吗?
标签: scala recursion overloading