Scala'da yazım desenini kullanıyorum varsayalım. Şimdiye kadar iyiTip desenini altyazı ile nasıl birleştirebilirim?
Welcome to Scala version 2.9.0.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
scala> trait Foo[T] { def foo(t: T) }
defined trait Foo
scala> def foo[T : Foo](t: T) { implicitly[Foo[T]].foo(t) }
foo: [T](t: T)(implicit evidence$1: Foo[T])Unit
scala> class C
defined class C
scala> foo(new C)
<console>:11: error: could not find implicit value for evidence parameter of type Foo[C]
foo(new C)
^
scala> implicit object FooC extends Foo[C] { override def foo(c: C) { println("it's a C!") } }
defined module FooC
scala> foo(new C)
it's a C!
: Ben typeclass Foo bir sınıf C parçası haline şekli aşağıdaki gibidir. Ama C sınıfının bir alt sınıfı D olduğunu varsayalım, ben de typeclass "in" olmak D örneklerini istiyorum:
scala> class D extends C
defined class D
scala> foo(new D)
<console>:13: error: could not find implicit value for evidence parameter of type Foo[D]
foo(new D)
^
Doh! Bu işi, D için bir yazım hatası örneği sağlamak zorunda kalmadan nasıl yapabilirim?
cevapsız Bu hemen hemen http yineleniyor: // stackoverflow. com/questions/3869991/type-class-pattern-in-scala-dikkate-dikkate-devralma –