I think taking address of a string literal is some kind of "type transform",a syntactic sugar.
Now, we need follow code to return a *string
func f1()*string{
tmp:="a"
return &tmp
}
If golang support taking address of a string literal,we may use that code.
func f2()*string{
return &"a"
}
I think taking address of a string literal is just like &[]byte{0} which malloc a variable which value is []byte{0}
I think I should also taking address of a int literal, taking address of a func literal ...
http://play.golang.org/p/aI6gKoGP_3
google groups topic: https://groups.google.com/forum/#!topic/golang-nuts/mKJbGRRJm7c