diff --git a/exercise_0304/go.mod b/exercise_0304/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..3c219f0bc4fc506f72016dc92f087468a3a7a5e3 --- /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 0000000000000000000000000000000000000000..514802aca7d159b4de991dd636dcef543be16256 --- /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) +}