The go spec refers to the underlying type of a given type T:
Each type T has an underlying type: If T is one of the predeclared boolean, numeric, or
string types, or a type literal, the corresponding underlying type is T itself.
Otherwise, T's underlying type is the underlying type of the type to which T refers in
its type declaration.
Discussion: https://groups.google.com/d/msg/golang-nuts/BJEuegjQtEA/q2S3b6JxY1MJ