type Celsius int
that in theory prevent you from passing a bare int and mixing up Celsius/Fahrenheit.In go this almost works. If you define
type Celsius int
func isBoiling(t Celsius) bool {
return t >= 100
}
then You need to call it by doing something like t := Celsius(100)
isBoiling(t)
and just t := 212
isBoiling(t)
will not compile with cannot use t (type int) as type Celsius in argument to isBoiling
But unfortunately you can get away with isBoiling(212)
However, If you just used a type alias then you'd be able to do either.