I was going through the documentation.
There is a section as below:
<- operator associates with the leftmost
chan<- chan int // same as chan<- (chan int)
chan<- <-chan int // same as chan<- (<-chan int)
<-chan <-chan int // same as <-chan (<-chan int)
chan (<-chan int)
All above 4 scenarios, I did not understand. Please help me to understand.
What exactly did you not understand?
The examples are pretty clear. They tell you how the
<- operator binds to the various
chan in the type.
They have an unparenthised type and then an equivalent type written with parenthesis.
The declaration like below is completely understandable
like var1 chan<- float64
it means var1 is a FIFO channel can only be used for sending float64 values.
But the following statement is confusing
var1 chan<- <-chan int
Can you please break it and help me to understand.
I am sorry if my subject line is not humble in nature. I am changing it
That is a channel for sending channels that can receive integer values.
Thank you very much for the response.
But I have dissected the syntax and checked it in the playground on my own. I have a clear picture now.
The channel variable declaration has two parts.
channel_type further can be dissected as below
chan keyword, which depicts the variable as a channel.
- Direction of the channel (sending and receiving). (optional)
- Type of the value, a channel can hold.
A channel_type syntax can be used as a type of value a channel can hold in another channel declaration. Which is point number 3. in the above description
This is how the language specification should have been mentioned similar for the channel topic.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.