Everything in Go is passed by value, even the "reference types". Those types are called reference types because they hold a reference to some value in memory, exactly like a pointer.
If they were passed by reference, then we would expect this playground snip to print "false": http://play.golang.org/p/r6naknvzng