Scala上下文边界与视图边界有甚么不同
Scala中的上下文边界和视图边界是两种区分的类型束缚。
上下文边界使用[A: B]的语法,其中A是类型参数,B是类型类。它要求类型A存在一个类型类B的隐式实例。上下文边界是一种对隐式参数的束缚,它要求类型A一定要能够被隐式转换为类型B。
视图边界使用[A <% B]的语法,其中A是类型参数,B是类型。它要求类型A能够被隐式转换为类型B。视图边界是一种对隐式转换函数的束缚,它要求类型A能够被隐式转换为类型B。
总的来讲,上下文边界更加通用,由于它可以要求类型A存在一个指定类型类的隐式实例,而视图边界则更加灵活,由于它可以要求类型A能够被隐式转换为指定类型。
TOP