kouzdra (kouzdra) wrote,
kouzdra
kouzdra

goбъектное-2

Приведу пример с множественным наследованием (описания из предыдущего поста предполагаются):

type Colored interface {
   color () string
}

type ColoredPoint interface {
	Point
	Colored
}

func prColAndAbs(cp ColoredPoint) {
	fmt.Printf("Color: %s, Abs: %g\n", cp.color(), cp.abs ())
}

type Color struct {
	string
}

func (c Color) color () string {
    return c.string
}

type ColoredPoint2D struct {
	Point2D
	Color
}

type ColoredPoint3D struct {
	Point3D
	Color
}

func main() {
	p2 := Point2D {1, 2}
	p3 := Point3D {p2, 3}
	cp2 := ColoredPoint2D {p2, Color{"red"}}
	cp3 := ColoredPoint3D {p3, Color{"green"}}
	prColAndAbs(cp2)
	prColAndAbs(cp3)
}


В особых пояснениях, думаю, не нуждается.
Tags: go, goбьектное, Компутерщина, Языки программирования
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments