Hello,

First, as I probably end my first reading of Go Spec in coming days, I want 
to thank you all for helping me in that. Thank you. :)

Second, I have question about example shown in section "Appending to and 
copying slices".

s0 := []int{0, 0}
s1 := append(s0, 2)                // append a single element     s1 == 
[]int{0, 0, 2}
s2 := append(s1, 3, 5, 7)          // append multiple elements    s2 == 
[]int{0, 0, 2, 3, 5, 7}
s3 := append(s2, s0...)            // append a slice              s3 == 
[]int{0, 0, 2, 3, 5, 7, 0, 0}
s4 := append(s3[3:6], s3[2:]...)   // append overlapping slice    s4 == 
[]int{3, 5, 7, 2, 3, 5, 7, 0, 0}

I didn't understand why s4 looks that after append. I would guess that if I 
call append(s3[3:6], s3[:2]...) (s3[2:] replaced by s3[:2]) it should 
produce result above. But I don't think clearly recently, to much on my 
head.

Best regards,
Kamil

sobota, 29 lipca 2023 o 19:50:51 UTC+2 Kamil Ziemian napisał(a):

> "The confusion may come from the fact that a list of forbidden built-in 
> operations is immediately followed by a list of (mostly) allowed operations 
> that illustrate the original rule?"
> You hit the nail on the head.
>
> I don't have much faith in me as programmer, so I ask about any such issue 
> that is bothering me.
>
> Best regards,
> Kamil
>
> pt., 28 lip 2023 o 17:32 Brian Candler <b.ca...@pobox.com> napisał(a):
>
>> If you wanted to be absolutely clear, you could insert "The following are 
>> examples of expression statements" - although it didn't really trouble me 
>> as-is.
>>
>> On Friday, 28 July 2023 at 16:12:11 UTC+1 Jason Phillips wrote:
>>
>>> The confusion may come from the fact that a list of forbidden built-in 
>>> operations is immediately followed by a list of (mostly) allowed operations 
>>> that illustrate the original rule? With the exception of "len", it may be 
>>> more clear for it to be structure like:
>>>         ExpressionStmt = Expression .
>>>
>>>         h(x+y)
>>>         f.Close()
>>>         <-ch
>>>         (<-ch)
>>>         len("foo") // illegal if len is the built-in function
>>>
>>>     The following built-in functions are not permitted in statement 
>>> context:
>>>         append cap complex imag len make new real
>>>         unsafe.Add unsafe.Alignof unsafe.Offsetof unsafe.Sizeof 
>>> unsafe.Slice
>>>
>>> But, that leaves the "len" example with zero context upfront.
>>>
>>> On Friday, July 28, 2023 at 10:51:20 AM UTC-4 Axel Wagner wrote:
>>>
>>>> Note also, that you didn't paste the entire section:
>>>>
>>>> With the exception of specific built-in functions, function and method 
>>>> calls and receive operations can appear in statement context. Such 
>>>> statements may be parenthesized. […] The following built-in functions are 
>>>> not permitted in statement context:
>>>>
>>>> This is IMO very clear about those other examples being allowed.
>>>>
>>>> On Fri, Jul 28, 2023 at 4:42 PM Axel Wagner <axel.wa...@googlemail.com> 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Fri, Jul 28, 2023 at 4:04 PM Kamil Ziemian <kziem...@gmail.com> 
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> After a long break, I go back to reading Go Spec.
>>>>>>
>>>>>> In the section "Expression statements" we read that "The following 
>>>>>> built-in functions are not permitted in statement context:
>>>>>>
>>>>>> append cap complex imag len make new real
>>>>>> unsafe.Add unsafe.Alignof unsafe.Offsetof unsafe.Sizeof unsafe.Slice
>>>>>>
>>>>>> h(x+y)
>>>>>> f.Close()
>>>>>> <-ch
>>>>>> (<-ch)
>>>>>> len("foo")  // illegal if len is the built-in function"
>>>>>>
>>>>>> Are things following "h(x+y)" also forbidden in the statement 
>>>>>> context? This part of spec isn't specially clear in my opinion.
>>>>>>
>>>>>
>>>>> No, they are not. Otherwise, they'd have a comment following them 
>>>>> saying "illegal for $reason".
>>>>>  
>>>>>
>>>>>>
>>>>>> Best regards,
>>>>>> Kamil
>>>>>> poniedziałek, 12 czerwca 2023 o 02:02:27 UTC+2 Rob Pike napisał(a):
>>>>>>
>>>>>>> Although the sentence is OK as it stands, the section should be 
>>>>>>> tweaked a bit. One of the examples there (myString(0x65e5)) is valid Go 
>>>>>>> but 
>>>>>>> vet rejects it, as part of the move towards disallowing this 
>>>>>>> conversion, 
>>>>>>> which was there mostly for bootstrapping the libraries.
>>>>>>>
>>>>>>> -rob
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jun 12, 2023 at 3:10 AM 'Axel Wagner' via golang-nuts <
>>>>>>> golan...@googlegroups.com> wrote:
>>>>>>>
>>>>>>>> Ah, the spec does actually say:
>>>>>>>>>
>>>>>>>>> Converting a signed or unsigned integer value to a string type 
>>>>>>>>> yields a string containing the UTF-8 representation of the integer. 
>>>>>>>>> Values 
>>>>>>>>> outside the range of valid Unicode code points are converted to 
>>>>>>>>> "\uFFFD".
>>>>>>>>
>>>>>>>>
>>>>>>>> Personally, I think this is fine as is. I think people understand 
>>>>>>>> what happens from these two sentences. 
>>>>>>>>
>>>>>>>> On Sun, Jun 11, 2023 at 7:02 PM Axel Wagner <
>>>>>>>> axel.wa...@googlemail.com> wrote:
>>>>>>>>
>>>>>>>>> I'm not entirely sure. I don't think your phrasing is correct, as 
>>>>>>>>> it doesn't represent what happens if the integer value exceeds the 
>>>>>>>>> range of 
>>>>>>>>> valid codepoints (i.e. if it needs more than 32 bits to represent). 
>>>>>>>>> That 
>>>>>>>>> being said, the sentence as is also isn't really precise about it. 
>>>>>>>>> From 
>>>>>>>>> what I can tell, the result is not valid UTF-8 in any case.
>>>>>>>>>
>>>>>>>>> I think it might make sense to file an issue about this, though in 
>>>>>>>>> general that conversion is deprecated anyway and gets flagged by `go 
>>>>>>>>> vet` 
>>>>>>>>> (and `go test`) because it is not what's usually expected. So I'm not 
>>>>>>>>> sure 
>>>>>>>>> how important it is to get this exactly right and understandable.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sun, Jun 11, 2023 at 5:17 PM Kamil Ziemian <kziem...@gmail.com> 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I have some hair splitting question. In the "Conversions to and 
>>>>>>>>>> from a string type" we read:
>>>>>>>>>> "Converting a signed or unsigned integer value to a string type 
>>>>>>>>>> yields a string containing the UTF-8 representation of the integer."
>>>>>>>>>>
>>>>>>>>>> Would it be more corrected to say, that conversion from integer 
>>>>>>>>>> to string gives you UTF-8 representation of code point described by 
>>>>>>>>>> value 
>>>>>>>>>> of the integer? Or maybe it is indeed representation of integer 
>>>>>>>>>> described 
>>>>>>>>>> by UTF-8 specification?
>>>>>>>>>>
>>>>>>>>>> Best regards,
>>>>>>>>>> Kamil
>>>>>>>>>> czwartek, 28 października 2021 o 19:33:27 UTC+2 Kamil Ziemian 
>>>>>>>>>> napisał(a):
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> From what I understand proper Gopher read at least one time "The 
>>>>>>>>>>> Go Programming Language Specification" (
>>>>>>>>>>> https://golang.org/ref/spec) and now I need to read it too.
>>>>>>>>>>>
>>>>>>>>>>> I learn something of Extended Backus-Naur Form to understand it, 
>>>>>>>>>>> so if I say something stupid beyond belief, I hope you will forgive 
>>>>>>>>>>> me. In 
>>>>>>>>>>> the first part "Notation" (https://golang.org/ref/spec#Notation) 
>>>>>>>>>>> I believe that I understand meaning of all concepts except of 
>>>>>>>>>>> "production_name". On one hand "production_name" means that it is 
>>>>>>>>>>> name of 
>>>>>>>>>>> the production, not rocket science here. On the other, after 
>>>>>>>>>>> reading about 
>>>>>>>>>>> EBNF I feel that I should have more information about it. Can you 
>>>>>>>>>>> explain 
>>>>>>>>>>> it to me?
>>>>>>>>>>>
>>>>>>>>>>> Again I'm new to EBNF, so maybe this is stupid question.
>>>>>>>>>>>
>>>>>>>>>>> Best
>>>>>>>>>>> Kamil
>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>> 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/06347585-fd2c-4bfa-9527-3439389c6414n%40googlegroups.com
>>>>>>>>>>  
>>>>>>>>>> <https://groups.google.com/d/msgid/golang-nuts/06347585-fd2c-4bfa-9527-3439389c6414n%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...@googlegroups.com.
>>>>>>>>
>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/golang-nuts/CAEkBMfHaG8bYNLvLERu0-ad57wpoWsiB%2BFC5asyKA7FH6%2BvgZw%40mail.gmail.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/golang-nuts/CAEkBMfHaG8bYNLvLERu0-ad57wpoWsiB%2BFC5asyKA7FH6%2BvgZw%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...@googlegroups.com.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/golang-nuts/a2031526-c215-4594-8da3-2aea38d95d85n%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/golang-nuts/a2031526-c215-4594-8da3-2aea38d95d85n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>
> You received this message because you are subscribed to a topic in the 
>> Google Groups "golang-nuts" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/golang-nuts/xwavrjBZbeE/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> golang-nuts...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/e730ee30-0a9e-4be9-9fee-08ed73d32b89n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/e730ee30-0a9e-4be9-9fee-08ed73d32b89n%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/bab72829-7c67-462e-917d-b6107449ba25n%40googlegroups.com.

Reply via email to