From 37312f864c5b58954876d9c560e3fc849cb9a399 Mon Sep 17 00:00:00 2001 From: Sebastian Steger Date: Wed, 20 Aug 2025 07:04:05 +0000 Subject: [PATCH] struct embedding --- go/02-next-level/02-struct-embedding.go | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 go/02-next-level/02-struct-embedding.go diff --git a/go/02-next-level/02-struct-embedding.go b/go/02-next-level/02-struct-embedding.go new file mode 100644 index 0000000..72f46fd --- /dev/null +++ b/go/02-next-level/02-struct-embedding.go @@ -0,0 +1,40 @@ +package main + +import "fmt" + +type Person struct { + Name string +} + +func (p Person) Say() { + fmt.Println("Hi, my name is", p.Name) +} + +type Student struct { + Person + Semester int +} + +type Teacher struct { + Person + Subject string +} + +func main() { + + max := Person{"Max"} + + daniel := Student{Person{"Daniel"}, 3} + + sebastian := Teacher{Person{"Sebastian"}, "PR3"} + + max.Say() + + daniel.Say() + + sebastian.Say() + + max = sebastian.Person + + max.Say() +}