go - Golang Non-Struct Type Pointer Receiver -
i created custom type based on golang net.ip type. surprised me method declared pointer receiver custom type can't modify value receiver points.
the u variable in code snippet remains nil after calling u.defaultip(). ip can modified if changed custom type struct ip field , method defined pointer receiver struct. missing? executable example can found here.
type userip net.ip func main() { var u *userip u.defaultip() fmt.printf("%v\n", u) } func (u *userip) defaultip() { defaultip := userip("127.0.0.1") u = &defaultip }
you need dereference u before setting it's value.
from example, change
defaultip := userip("127.0.0.1") u = &defaultip to
*u = userip("127.0.0.1") for example updated , working: https://play.golang.org/p/ycclt0ed9f
Comments
Post a Comment