From cf4133638b5ff8915bceb1730391cb38e4b628b9 Mon Sep 17 00:00:00 2001
From: Martin Schmollinger <martin.schmollinger@reutlingen-university.de>
Date: Fri, 7 Apr 2023 18:41:30 +0200
Subject: [PATCH] Solution to exercise of unit 03-05

---
 exercise_0305/go.mod  |  3 +++
 exercise_0305/main.go | 44 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)
 create mode 100644 exercise_0305/go.mod
 create mode 100644 exercise_0305/main.go

diff --git a/exercise_0305/go.mod b/exercise_0305/go.mod
new file mode 100644
index 0000000..aa6483b
--- /dev/null
+++ b/exercise_0305/go.mod
@@ -0,0 +1,3 @@
+module gitlab.reutlingen-university.de/go-exercises/go-starter/exercise_0305
+
+go 1.20
diff --git a/exercise_0305/main.go b/exercise_0305/main.go
new file mode 100644
index 0000000..c15c0c9
--- /dev/null
+++ b/exercise_0305/main.go
@@ -0,0 +1,44 @@
+package main
+
+import "fmt"
+
+type PhoneBook struct {
+	entries map[int]string
+}
+
+func (pb *PhoneBook) AddNumbers(person string, numbers ...int) {
+	for _, number := range numbers {
+		pb.entries[number] = person
+	}
+}
+
+func CreateEmptyPhoneBook() PhoneBook {
+	emptyPB := PhoneBook{
+		entries: make(map[int]string),
+	}
+	return emptyPB
+}
+
+func (pb *PhoneBook) PrintPhoneBook() {
+	for number, person := range pb.entries {
+		fmt.Printf("%s: %d\n", person, number)
+	}
+}
+
+func main() {
+
+	pb := PhoneBook{
+		entries: map[int]string{
+			4711: "Marcus",
+			4712: "Martin",
+		},
+	}
+
+	pb.AddNumbers("Dominik", 4713, 4714)
+	pb.PrintPhoneBook()
+
+	pb2 := CreateEmptyPhoneBook()
+	pb2.AddNumbers("Karlo", 1, 2, 3, 4, 5)
+	pb2.PrintPhoneBook()
+
+}
-- 
GitLab