Go言語クイズ: ややこしいインターフェイス
ここに2つのファイルからなるGoのプログラムがあります。 文法的には問題はなくビルドできるコードですが、実行すると何が起こるでしょうか。 Goのバージョンとともに答えてください。
package main
import (
"./sub"
"fmt"
)
type T struct {
sub.T
}
func (T) f() {
fmt.Println("main.T.f()")
}
func main() {
s := sub.New(T{})
s.F()
}
package sub
type I interface {
f()
}
type T struct {
I
}
func New(i I) T {
return T{i}
}
func (t T) F() {
t.f()
}
答えはまた後日。