-1
次のコードはどうやって実行されていますか? "measure"は型ジオメトリの引数を要求しますが、このコードは "square"型の引数を渡します。関数の引数型は、コンパイルや実行時エラーなしで異なります
package main
import "fmt"
type geometry interface {
area() int
}
type square struct {
radius int
}
func (s square) area() int {
return s.radius*s.radius
}
func measure(g geometry) {
fmt.Println(g)
fmt.Println(g.area())
}
func main() {
measure(square{radius: 3})
}
outpustは次のようになります。それはメソッドarea()
を持っているので
{3}
9
おかげ
インターフェイスです。 [ゴーツアーをご利用ください](https://tour.golang.org/methods/9)。 – Adrian