I did have to put "return x" as the last statement, though, not return v. And I'm not sure I'm happy about an "abs" that happily returns a string if fed a string, but, well, that's Go.
Yes, the return statement was what I was referring to. You can't use a type switch to do some sort of an implicit conversion that exists outside of the switch statement.
But the short variable declaration in the type switch does indeed save the casts the OP was complaining about.
Even more correct and horrible: http://play.golang.org/p/ZMQKQhuUQT