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

---
 exercise_0304/go.mod  |  3 +++
 exercise_0304/main.go | 37 +++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 exercise_0304/go.mod
 create mode 100644 exercise_0304/main.go

diff --git a/exercise_0304/go.mod b/exercise_0304/go.mod
new file mode 100644
index 0000000..3c219f0
--- /dev/null
+++ b/exercise_0304/go.mod
@@ -0,0 +1,3 @@
+module gitlab.reutlingen-university.de/go-exercises/go-starter/exercise_0303
+
+go 1.20
diff --git a/exercise_0304/main.go b/exercise_0304/main.go
new file mode 100644
index 0000000..514802a
--- /dev/null
+++ b/exercise_0304/main.go
@@ -0,0 +1,37 @@
+package main
+
+import "fmt"
+
+type Areaer interface {
+	Area() int
+}
+
+type Rectangle struct {
+	length int
+	width  int
+}
+
+func (r Rectangle) Area() int {
+	return r.length * r.width
+}
+
+func (r *Rectangle) SetWidth(width int) {
+	r.width = width
+}
+
+func (r Rectangle) String() string {
+	return fmt.Sprintf("{l: %d, w: %d}", r.length, r.width)
+}
+
+func createShape() Areaer {
+	return Rectangle{length: 10, width: 5}
+}
+
+func main() {
+	r := Rectangle{length: 10, width: 5}
+	r.SetWidth(9)
+	fmt.Println(r.Area())
+	s := createShape()
+	fmt.Println(s.Area())
+	fmt.Println(r)
+}
-- 
GitLab