From 6b378a17713865545574ba81cc309f9bee4a7705 Mon Sep 17 00:00:00 2001 From: caoyingjunz Date: Fri, 29 Sep 2023 22:24:30 +0800 Subject: [PATCH] Add test interface demo (#103) --- practise/interface-practise/test.go | 55 +++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 practise/interface-practise/test.go diff --git a/practise/interface-practise/test.go b/practise/interface-practise/test.go new file mode 100644 index 00000000..13356fbd --- /dev/null +++ b/practise/interface-practise/test.go @@ -0,0 +1,55 @@ +package main + +import "fmt" + +type TestInterface interface { + RunTest1() + RunTest2() + RunTest3() +} + +type test struct { + *Test1 + *Test2 + *Test3 +} + +func NewTest() TestInterface { + return test{ + &Test1{Name: "test1"}, + &Test2{Name: "test2"}, + &Test3{Name: "test3"}, + } +} + +type Test1 struct { + Name string +} + +type Test2 struct { + Name string +} + +type Test3 struct { + Name string +} + +func (t *Test1) RunTest1() { + fmt.Println(t.Name) +} + +func (t *Test2) RunTest2() { + fmt.Println(t.Name) +} + +func (t *Test3) RunTest3() { + fmt.Println(t.Name) +} + +func main() { + t := NewTest() + + t.RunTest1() + t.RunTest2() + t.RunTest3() +}