In this Swift programming tutorial, you will learn about the Measurement struct and how to use it to convert one unit from another unit of the same type.

You may need to convert one unit to another while developing an iOS app. It can be done by using a unit conversion formula. We can do it by ourselves if we know the formula of conversion. But doing this can be complicated and we need to know the formula.

Luckily there is a built-in structure `Measurement`

provided by Apple that can help us with conversion between units.

It can help us to convert the unit in an effective way. We have to write less amount of code. The interesting part is that we don’t even need to know the formula.

For example, you can convert temperature units from Fahrenheit to Celcius and vice versa or from Celcius to kelvin and vice versa and so on for length, area, volume, etc using the `Measurement`

struct. But it has to be the same type. For example, You can not perform the conversion between a unit of length and a unit of volume.

The `Measurement`

is part of the Foundation framework of Swift. So you must import the Foundation framework before using the `Measurement`

struct.

Below is given the syntax to create an instance of the `Measurement`

struct in Swift:

`let myUnitValue = Measurement(value: DOUBLE_VALUE, unit: UNIT_TYPE.UNIT)`

In the above syntax, `myUnitValue`

is the variable or in this case the name of the constant to store the instance of the Measurement unit type. `DOUBLE_VALUE`

is the value of the unit in type double. `UNIT_TYPE`

is the type of unit and `UNIT`

is the unit of Measurement.

Let’s first start with a simple example.

Suppose the height of a wall is 8 feet. You can create an instance of Measurement for this height with type length:

```
import Foundation
let wallHeightInFeet = Measurement(value: 8, unit: UnitLength.feet)
```

In the above program, the `UnitLength.feet`

is the unit for length. You can’t write `.feet`

here as there are other subclasses. The `UnitLength`

class has many other units for length.

To convert the above unit into inches below is the given code:

```
import Foundation
let wallHeightInInches = wallHeightInFeet.converted(to: UnitLength.inches)
```

Below we are converting the unit of length to other units of length from feet:

```
import Foundation
let wallHeightInFeet = Measurement(value: 8, unit: UnitLength.feet)
let wallHeightInMeters = wallHeightInFeet.converted(to: UnitLength.meters)
let wallHeightInKilometers = wallHeightInFeet.converted(to: UnitLength.kilometers)
let wallHeightInCentimeters = wallHeightInFeet.converted(to: UnitLength.centimeters)
let wallHeightInMillimeters = wallHeightInFeet.converted(to: UnitLength.millimeters)
```

Below is another example where we are converting the gram unit to other units of mss.

```
import Foundation
let weightInKg = Measurement(value: 13, unit: UnitMass.kilograms)
let weightInGram = weightInKg.converted(to: UnitMass.grams)
let weightInMilligram = weightInKg.converted(to: UnitMass.milligrams)
let weightInDecigram = weightInKg.converted(to: UnitMass.decigrams)
```

In the same way, you can perform the conversion task between other units. Here is an example of converting Fahrenheit to Celsius and vice versa using the Measurement.

Now let’s look at some interesting facts about Swift Measurement that are useful for app developers:

- Measurement type supports the comparison between two measurements of the same types of units using these operators:
`==, !=, <, <=, > and >=`

- Just like any other adding and subtracting operations, two Measurements with units of the same types also can be added or substracts using the
`+`

and`-`

operators. - You can perform multiplication and division by a double value by using
`*`

and`/`

operators. - It is possible to use ranges using
`...`

and`..<`

.