1

実装者に Click メソッドが必要なインターフェイスがあります。ただし、このインターフェースを実装する型 FakeTicker は、Click メソッドに加えて Tick メソッドも実装しています。

package main



type Ticker interface{  
  Click() string 
}

type FakeTicker struct{ 
   val string }

func (f FakeTicker) Click() string {    
   return f.val 
}

func (f FakeTicker) Tick() int {    return 1 }

func main() {   
  var clocker Ticker    
  clocker = FakeTicker{"Val"}   
  clocker.Tick()    
}

ここで、「clocker.Tick undefined (type Ticker has no field or method Tick)」というエラーが表示されます。

インターフェイスにはメソッド Click() しかないことは理解していますが、FakeWriter がインターフェイスを実装しているので、独自のメソッド Tick() を呼び出すことができるはずではありませんか?

4

2 に答える 2