Chapter 8 - Structs
Exercise 1: Defined Types and Structs
Let’s create a struct type named rectangle
, that represents rectangular areas. It should have length
and width
fields, both of type float64
.
Also create a rectangleInfo
function that accepts a rectangle
as a parameter. rectangleInfo
should print "Length:"
followed by the rectangle’s length, then "Width:"
followed by the rectangle’s width.
Finally, in your main
function, create a new rectangle
value, and set its length
and width
fields. Then pass the rectangle
to rectangleInfo
to display its field values.
Sample output:
Length: 4.2
Width: 2.3
When you’re ready, have a look at our solution.
Exercise 2: Modifying Structs from Functions
All squares are rectangles, but not all rectangles are squares… Let’s define a makeSquare
function that takes a rectangle
and “cuts it down” so that its longer sides are equal to its shorter sides.
- If the
rectangle
’slength
is greater than itswidth
, set itslength
equal to itswidth
. - Otherwise, set the
width
equal to thelength
.
makeSquare
won’t return a value; it should modify the rectangle
it receives (meaning it will need to accept a pointer to a rectangle
and modify the value at that pointer).
In main
, create a couple different rectangle
values, one where the length
is greater and one where the width
is greater, and try converting them to squares using makeSquare
.
Here’s our solution.