Scala编程:类型类、功能构建与纯函数实践
类型类的应用与优势
类型类并非来自面向对象编程(OOP)世界,而是源自函数式编程(FP)领域,特别是Haskell。类型类具有两个显著优势:一是可以向封闭模型添加行为;二是能定义接受泛型类型的方法,并对这些类型进行控制。
以下是一个使用类型类的示例代码:
package typeclassdemo
object TypeClassDemo extends App {
import Humanish.HumanLike
// 创建一个方法让动物说话
def makeHumanLikeThingSpeak[A](animal: A)(implicit humanLike: HumanLike[A]) {
humanLike.speak(animal)
}
// 因为HumanLike为Dog实现了该方法,所以它可以正常工作
makeHumanLikeThingSpeak(Dog("Rover"))
// 然而,该方法对Cat无法编译(符合预期)
//makeHumanLikeThingSpeak(Cat("Morris"))
}
在这个示例中, makeHumanLikeThingSpeak 方法类似于之前示例中的 add 方法。 add 方法的定义如下:
def add[A](x: A, y: A)(implicit numeric:
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



