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.

Reply via email to