`val pair: Pair<String, Int> = "myKey" to 2`

## What is a Pair Type?#

A utility class when you want to return 2 values that are not related to one another.

## Some examples#

``````val (a, b) = Pair(1, "x")
println(a) // 1
println(b) // x
``````

Alterantively, you could use:

``````val p = Pair("x", "y")
println(p) // (x, y)
``````

You can refer to it as `first` and `second`

``````val p = Pair("x", "y")
println(p.first) // x
println(p.second) // y
``````

This is great for returning multiple values from a function.

## The `to` keyword#

The shorter version of doing this, is to use a map value with the `to` keyword:

``````val p = "x" to "y"
println(p.first) // x
println(p.second) // y
``````

Or:

``````val p = Pair("x" to "y")
println(p.first) // x
println(p.second) // y
``````

## Using Pairs in function return Types#

``````fun main() {
val p = getMyPairs()
println(p) // (x, y)
}
fun getMyPairs() : Pair<String, String> {
return Pair("x", "y")
}
``````

And splitting into values:

``````fun main() {
val (first, second) = getMyPairs()
println(first) // x
println(second) // y
}
fun getMyPairs() : Pair<String, String> {
return Pair("x", "y")
}
``````

## Simplifying `getMyPairs`#

``````fun getMyPairs() : Pair<String, String> {
return"x" to "y"
}
``````

## Comparing to a `mapOf`#

``````fun main() {
val myMap = mapOf("x" to "y", "z" to "o")
println(myMap) // {x=y, z=o}
}
``````