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 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/e730ee30-0a9e-4be9-9fee-08ed73d32b89n%40googlegroups.com.

Reply via email to