On Tuesday, August 23, 2016 at 1:25:03 AM UTC+8, con...@superhuman.com 
wrote:
>
> Hey All,
>
> I've been using a typedef of
>
>     type MaybeTimestamp *int64
>
> so we can JSON encode timestamps correctly, see 
> https://medium.com/coding-and-deploying-in-the-cloud/time-stamps-in-golang-abcaf581b72f
>  
> for inspriation
>
> I was surprised that the following didn't work (see 
> https://play.golang.org/p/1QQylqTLkB):
>
>     func NewMaybeTimestamp(t time.Time) MaybeTimestamp {
>         return &t.Unix()
>     }
>
>     // fails with:
>     // tmp/sandbox449672725/main.go:14: cannot take the address of t.Unix()
>
> I can fix this by introducing a temporary variable:
>
>     func NewMaybeTimestamp(t time.Time) MaybeTimestamp {
>         temp := t.Unix()
>         return &temp
>     }
>
> Seeing as this is the obvious solution to this problem, I was pretty 
> disappointed that the compiler couldn't insert the temporary for me.
>
> Is this something that should change, or is it just a limitation 
> hard-coded by the compatibility guarantee?
>

Direct values, including const and temp values, are not addressable. But 
there is an exception which is described in Ian's answer.
 

>
> Conrad
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to