Go's C-like disregard for the value of clear semantics and a meaningful type system has always bothered me.
> If u.Host doesn't contain a valid numeric port, Port returns an empty string.
So they go to the trouble of parsing, and then throw away the information gained. Glorious