On Tue, 18 Oct 2016 11:11:59 -0700 (PDT)
paraiso.m...@gmail.com wrote:

> Obviously in Go this is a compile time error :
> 
> type Foo interface {}
> 
> 
> func (f Foo) DoSomething(){}
> 
> 
> I wonder if there is some technical limitations that make it
> undesirable or hard to implement, or it's just that Go designers
> didn't think it is a relevant feature.
> 
> I personally think there is it could be handy in some situations,
> instead of having to write a function without receiver, it could
> allow to attach behavior to interfaces automatically 
> instead of the explicit :
> 
> func DoSomething(f Foo){}
> 
> 
> what is your opinion on the matter ? Unfortunately I wasn't able to
> catch anyone of the Go team during the recent conference in Paris to
> ask that question.

  type Foo interface {
      func DoSomething()
  }

  func (f Foo) DoSomething() {
  }

  var f Foo

  f.DoSomething()

How do you propose to distinguish these two DoSomething()-s?

More to the point: how could anyone infer what's about to get called
from looking at that "f.DoSomething()" expression even if there could
be no conflict as in my contrived example -- is it a call on an
"interface itself" or on a concrete type an interface value contains?

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to