Scala 隐式转换与参数深度解析
1. 隐式类与便捷对象构造
在 Scala 编程中,当我们频繁使用某个类时,为了更方便地构造该类的实例,可以运用富包装器模式。以 Rectangle
类为例:
case class Rectangle(width: Int, height: Int)
为了更轻松地创建 Rectangle
实例,我们可以定义一个隐式类 RectangleMaker
:
implicit class RectangleMaker(width: Int) {
def x(height: Int) = Rectangle(width, height)
}
上述定义不仅创建了 RectangleMaker
类,还会自动生成一个隐式转换方法:
// Automatically generated
implicit def RectangleMaker(width: Int) = new RectangleMaker(width)
这样,我们就可以通过在两个整数之间插入 x
来创建 Rectangle
实例: