Skip to content

Особенности (или баги?) с receive, send и вопрос про короткий вариант if/else #60

@ZakarumXiZ

Description

@ZakarumXiZ

Я столкнулся с еще несколькими особенностями (а некоторые вполне могут быть багами) в Pr:

  1. если написать что-то вроде a[i]:=a[i]+receive(i), то будет выдавать ошибку can only assign with receive, а если записать это во вроде бы эквивалентном виде a[i]+=receive(i), то ошибка не появляется. Т.е., если писать только := или только +=, то ничего такого, а если одновременно := и +, то выдает ошибку, даже если это эквивалентная запись для +=. Возможно, это является защитой от случая, если бы слева или справа было бы, например a[i-1] или a[i+1] (и если заменить так ровно с одной из сторон), но меня смущает, что интерпретатор ругается на другой вид записи +=, или, может быть, именно так и было задумано?

  2. И еще - мне кажется, что в описании языка стоит явно указать, что через send можно передавать массивы лишь поэлементно, через циклы, а напрямую - нельзя; или не стоит? Вроде, в описании указано, что можно несколько чисел за один вызов, но в условии явно не написано, что количество передаваемых переменных должно быть равным количеству аргументов минус 1.

  3. И я не совсем понимаю, а какая именно короткая версия if/else должна работать, вроде в языке можно только через отступы? Если это про версию, где идет присваивание, и оно идет перед if/else в одной строке (почти как в Python), то у меня это не работает, но, видимо, в документации имелось в виду другое

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions