什么是猫的@noop注释。基本上,它不接受任何字符串别名,如@op。这是scala doc for it
/**
* Annotation that may be applied to methods on a type that is annotated with `@typeclass`.
*
* Doing so results in the method being excluded from the generated syntax ops type.
*/
class noop() extends StaticAnnotation
我对此文档感到困惑。有人可以向我解释并给我一个关于如何使用它的例子吗?
非常感谢提前
答案 0 :(得分:3)
所以我们假设你有这个类型类:
@typeclass trait Foo[A] {
def bar(x: A)(y: A): A
}
您将能够(通过simulacrum定义的隐式语法)能够编写此方法:
def baz[A: Foo](x: A, y: A): A = x bar y
如果您要使用bar
注释@noop
方法,上面的内容将无法编译,例如" bar不是A"类型的成员,因为它不会#39;是从A提供给具有bar方法的隐式转换。