I appreciate the whole discussion, it was really insightful. Since Golang 
is not my first language, I had a preconceived notion about key-value pair 
initialization.
Here I would like to disagree with the syntax, it would be good that with 
the innovation in the language, the general idea of an Array and slice 
should be maintained, instead of making certain syntaxes so weird.

This syntax is really unintuitive for me. the key-value pair structures 
give so many pictures like hashing, scattered memory allocations, etc.

On Wednesday, June 23, 2021 at 3:06:56 AM UTC+5:30 Rob 'Commander' Pike 
wrote:

> That creates a slice 101 integers long, which probably isn't what you 
> meant, which might help explain why you never came across it before.
>
> Smile.
>
> -rob
>
>
> On Wed, Jun 23, 2021 at 7:07 AM jake...@gmail.com <jake...@gmail.com> 
> wrote:
>
>> I'm surprised that I have never come across this as a way to create a 
>> slice with an initial length:
>>
>> x := []int{100:0}
>>
>> On Tuesday, June 22, 2021 at 12:43:17 PM UTC-4 axel.wa...@googlemail.com 
>> wrote:
>>
>>> Oh and also:
>>>
>>> Likewise, I think this only works for array literals; I don’t think 
>>>> (though again have not tried it) that you can declare slice literals with 
>>>> only selected members initialized.
>>>
>>>
>>> Works fine too: https://play.golang.org/p/ANw54ShkTvY :)
>>>
>>> On Tue, Jun 22, 2021 at 6:41 PM Axel Wagner <axel.wa...@googlemail.com> 
>>> wrote:
>>>
>>>> (I assume with a runtime rather than a compiler error, but I haven’t 
>>>>> tried it)
>>>>
>>>>
>>>> Nope, compiler catches the overflow:  
>>>> https://play.golang.org/p/taorqygqxFz
>>>>
>>>> On Tue, Jun 22, 2021 at 6:39 PM David Riley <frave...@gmail.com> wrote:
>>>>
>>>>> On Jun 22, 2021, at 11:39, Vaibhav Maurya <vaibha...@gmail.com> wrote:
>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> Please help me to understand the following syntax mentioned in the 
>>>>> Golang language specification document.
>>>>>
>>>>> https://golang.org/ref/spec#Composite_literals
>>>>>
>>>>> following is the search string for CTRL + F
>>>>> // vowels[ch] is true if ch is a vowel \
>>>>>
>>>>> Following declaration and initialization is confusing.
>>>>> vowels := [128]bool{'a': true, 'e': true, 'i': true, 'o': true, 'u': 
>>>>> true, 'y': true}
>>>>>
>>>>> Here one can see the vowels is an array. Where in the array 
>>>>> initialization syntax, there is a key value pair. I believe *bool *is 
>>>>> the primitive type, so the array values should be either true or false.
>>>>> Why there are key value pair separated by colon in the initialization.
>>>>>
>>>>>
>>>>> In this case, it is because the single quotes create a literal rune, 
>>>>> which ultimately is an integer; this is creating an array 128 wide of 
>>>>> bools, of which only the values indexed by those character values are 
>>>>> initialized (everything else is the zero value, or false).
>>>>>
>>>>> This example only works for characters in the 7-bit ASCII subset of 
>>>>> UTF-8; if you were to put other characters in which had rune values 
>>>>> greater 
>>>>> than 127, this would break (I assume with a runtime rather than a 
>>>>> compiler 
>>>>> error, but I haven’t tried it). Likewise, I think this only works for 
>>>>> array 
>>>>> literals; I don’t think (though again have not tried it) that you can 
>>>>> declare slice literals with only selected members initialized.
>>>>>
>>>>>
>>>>> - Dave
>>>>>
>>>>> -- 
>>>>> 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...@googlegroups.com.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/golang-nuts/2564C639-E055-4DD9-97A2-9B6061F83006%40gmail.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/golang-nuts/2564C639-E055-4DD9-97A2-9B6061F83006%40gmail.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...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/7d83fac1-3db0-4905-85e6-cc14b8c74389n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/7d83fac1-3db0-4905-85e6-cc14b8c74389n%40googlegroups.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/70d14d3c-d333-41d9-945f-de9d5a028458n%40googlegroups.com.

Reply via email to