讓我們來考慮下面的代碼: class A
object A{
implicit def A2Int(implicit a:A)=1
implicit def A2String(a:A)="Hello"
}
object Run extends App{
implicit val a: A =new A
import A.A2Int
//
假設我有一個簡單的類型類,其實例會給我一些類型的值: trait GiveMeJustA[X] { def apply(): X }
而且我有一些實例: case class Foo(s: String)
case class Bar(i: Int)
implicit object GiveMeJustAFoo extends GiveMeJustA[Foo] {
def ap
第一個例子成功地找到了隱式轉換的方法foo(String),但只要我添加一個類型參數(見fails)的編譯已經不解決這個問題: object works {
class A {
def foo(): String = ???
}
implicit class PimpedA(a: A) {
def foo(i: String): String =