# 19. User Defined Types

### User Defined Type

We can defined our own type based on existing Go in-build types. We have declared `person` as user defined type based on struct. We are not limited to struct. We can define our type based on any other type as base type.

### Declaring our own type

We can declare our type using `type` keyword. It generally takes form of

`type type_name base_type`

{% code title="main.go" %}

```go
type marks int
type liters float64

var m1 marks
m1 = 20

var l1 liters
l1 = 3.4
```

{% endcode %}

`marks` and `liters` are types based on `int` and `float64` respectively.

> **Go defined types most often use structs as their underlying types, but they can also be based on ints, strings, booleans, or any other type. - Head First Go**
