我看到一些在类/接口中定义的扩展函数的例子,但我不明白为什么要这样做。有人可以展示何时是实现某些用例的正确方法吗?
一个我不太明白的具体例子:
interface Monoid<A> {
fun z(): A
fun A.add(other:A):A
}
当你只想在你的类/接口及其子类型中使用这个函数时(或者几乎如此;你已经知道如何按照你之前的问题摆脱with
,但这不应该是一个常见的情况(。
一旦您需要同时使用多个Monoid
,具体示例似乎是一个坏主意。