A lot of Go code uses the following pattern:
var foo Foo
err := db.LoadFooByID(id, &foo)
// use the loaded foo
This pattern has its merits, especially, when it comes to a type you don't know in advance (interface{}). However, if you already know the type, it any other language, you would use LoadFooByID like this:
foo, err := db.LoadFooByID(id)
// use the loaded foo
And yet, people still prefer the former pattern.
I know that the question is very subjective, but if you had to provide a generic case solution that you apply consistently across your code base (for known types), which one would you go for?