Thank you Axel and burak for clarification. Now I am able to understand the syntax. Thank you again.
With regards, Venkatesh On Fri, Aug 4, 2023 at 10:28 PM Axel Wagner <axel.wagner...@googlemail.com> wrote: > Another relevant section is Calls <https://go.dev/ref/spec#Calls> (emphasis > mine): > >> A method call x.m() is valid if the method set of (the type of) x >> contains m and the argument list can be assigned to the parameter list of >> m. *If x is addressable and &x's method set contains m, x.m() is >> shorthand for (&x).m()*: > > > > > On Fri, Aug 4, 2023 at 6:39 PM burak serdar <bser...@computer.org> wrote: > >> >> >> On Fri, Aug 4, 2023 at 10:33 AM alchemist vk <alchemist...@gmail.com> >> wrote: >> >>> Hi folks, >>> In below code, I am invoking receiver api show() via a simple uInteger >>> type variable instead of pointer, by which it expects to be invoked . Go >>> being strict with type casing and I was expecting a compiler error. But to >>> my surprise, it compiled and executed successfully. Can you folks please >>> explain this behavior. >>> >>> >>> >>> >>> >>> >>> >>> >>> *package mainimport "fmt"type uInteger intfunc main() { var x >>> uInteger = 10 x.show()* >>> >> >> Above, the variable x is addressable, so the compiler passes &x to >> show(). >> >> To call a pointer receiver method of a variable, that variable has to be >> addressable (it doesn't have to be a pointer), so the compiler knows how to >> pass the address of it. Here's how it is described in the spec: >> >> https://go.dev/ref/spec#Method_values >> >> >>> >>> >>> >>> >>> *}func (x *uInteger) show() { fmt.Printf("In show, x = %d\n", *x)}* >>> >>> Thanks in Advance, >>> Venkatesh >>> >>> -- >>> 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. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/golang-nuts/CAJr0cerqTGvQA56yQWVYW3F2Ms5vbwq3YyO%2But%3DzJ%2BM4rqf81A%40mail.gmail.com >>> <https://groups.google.com/d/msgid/golang-nuts/CAJr0cerqTGvQA56yQWVYW3F2Ms5vbwq3YyO%2But%3DzJ%2BM4rqf81A%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> 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. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/CAMV2Rqq%2BZi7ioHi4PPXTmQ7du45LRJaEiSSWJpf1zeH%2Bq3Wjeg%40mail.gmail.com >> <https://groups.google.com/d/msgid/golang-nuts/CAMV2Rqq%2BZi7ioHi4PPXTmQ7du45LRJaEiSSWJpf1zeH%2Bq3Wjeg%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAJr0ceqs3eD%2BdxhPsN9nDrDXcg5Gc1HdzRAfw6L_uEwjA%2BuzgQ%40mail.gmail.com.