4

猫的@noop 注释是什么。基本上,它不接受像@op 这样的任何字符串别名。这是它的 scala 文档

/**
 * 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

我对这个文档感到困惑。有人可以向我解释并给我一个关于如何使用它的例子吗?

提前谢谢了

4

1 回答 1

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 的成员”之类的内容,因为不会提供从 A 到具有 bar 方法的东西的隐式转换。

于 2015-09-23T05:06:44.340 回答