Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 13 из 13
  1. #11
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,075
    Репутация:
    2460 ±
    Цитата Сообщение от MassonNN Посмотреть сообщение
    Это ты меня не понял. Как раз таки я не добавил никакого новшества в switch, я напротив за этим и написал, что твой вариант менее похож на оригинальный:


    В развернутом виде это будет выглядеть так:

    1. new result = switch (x) {
    2. 0..5: = 3;
    3. 6..10: = 4;
    4. 11..20: = 5;
    5. }


    По поводу знака равно. Здесь я уже сказал, что это тоже напоминает множественное присвоение, какое есть в pawn
    Я тебя прекрасно понял, ибо примерно так же Pa4enka объяснил свой вариант.
    Ок, тогда переформулирую вопрос: в чём необходимость использования знака "="? Нет, не цель (отделить кейс от выражения и показать присваивание), а именно необходимость? Почему это так важно в твоём варианте? Сильно сомневаюсь, что кто-то станет путаться без этого знака.


    Цитата Сообщение от MassonNN Посмотреть сообщение
    Дело в том, что теперь switch выглядит как ФУНКЦИЯ, а не оператор.
    И что с того? sizeof, defined, tagof и __emit тоже "похожи на функции", потому что могут использоваться с круглыми скбоками (настолько похожи, что некоторые уникумы на одном печально известном Pawn-форуме могут полдня с пеной у рта доказывать тебе, что sizeof занимает время на выполнение и его следует избегать, особенно внутри format()). Ничего нового в этом нет.

    Кстати говоря про __emit, с этим оператором как раз и было лишний раз подтверждено правило, что в выражениях должны использоваться круглые скобки
    1. new x = __emit(lctrl 6, add.c 20);

    а вне выражений - фигурные
    1. new x;
    2. __emit
    3. {
    4. lctrl 6
    5. stor.s.pri x
    6. }

    Это уже закрепившийся синтаксис, поэтому рассматривать возможность фигурных скобок в switch-выражениях считаю заведомо бессмысленным.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. #12
    Аватар для Pa4enka
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    107
    Репутация:
    15 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Сильно сомневаюсь, что кто-то станет путаться без этого знака.
    Станут. По крайней мере на начальном этапе. Как и ранее говорилось, отсутствия этого знака ставит обычного скриптера в ступор. Мне например понадобилось пересмотреть твой код 3 раза, дабы понять о чем идет речь(и это с учетом твоих объяснений). При этом важно понимать в каком обществе мы находимся. Большинство скриптеров совершенно не понимают другие языки программирования, а некоторые вообще не пытаются вникать. Остальная часть, к который ты и относишься, пишет на многих языках и тем самым какие-то стилистические аспекты ты видишь с другого угла. Поэтому и необходимость для нас разная.

    Я в некотором роде согласен с vvw, что возможно бы стояло добавить новую функцию, а не расширять возможности оператора switch, ибо тогда теряется весь смысл switch. Но с другой стороны, зачем добавлять новую функцию ради одного лишь нового синтаксиса? Тоже спорный вопрос.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Какое отношение такой синтаксис вообще имеет к Pawn?
    В чём профит от придания знаку "=" нового значения (отделение значений кейса от выражения)? Чем вместо этого не устроил знак ":"? Или знак "=" призван показать присваивание? Так ведь знак присваивания уже есть перед словом switch.
    Первый знак присвоения стоит для того, чтобы показать, что функция switch возвратит определенное значения. В нашем случае, результат выражения switch. Разве нет?)

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    всё это просто походит на попытку троллинга.
    Нет, ты указал, что хочешь получить варианты синтаксиса от юзеров. Вот мы и пытаемся вставить свои "пять копеек" :)
    Последний раз редактировалось Pa4enka; 09.01.2020 в 03:57.

  3. #13
    Аватар для MassonNN
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.03.2018
    Адрес
    Москва
    Сообщений
    93
    Репутация:
    3 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Я тебя прекрасно понял, ибо примерно так же Pa4enka объяснил свой вариант.
    Ок, тогда переформулирую вопрос: в чём необходимость использования знака "="? Нет, не цель (отделить кейс от выражения и показать присваивание), а именно необходимость? Почему это так важно в твоём варианте? Сильно сомневаюсь, что кто-то станет путаться без этого знака.



    И что с того? sizeof, defined, tagof и __emit тоже "похожи на функции", потому что могут использоваться с круглыми скбоками (настолько похожи, что некоторые уникумы на одном печально известном Pawn-форуме могут полдня с пеной у рта доказывать тебе, что sizeof занимает время на выполнение и его следует избегать, особенно внутри format()). Ничего нового в этом нет.

    Кстати говоря про __emit, с этим оператором как раз и было лишний раз подтверждено правило, что в выражениях должны использоваться круглые скобки
    1. new x = __emit(lctrl 6, add.c 20);

    а вне выражений - фигурные
    1. new x;
    2. __emit
    3. {
    4. lctrl 6
    5. stor.s.pri x
    6. }

    Это уже закрепившийся синтаксис, поэтому рассматривать возможность фигурных скобок в switch-выражениях считаю заведомо бессмысленным.
    И все таки я выступаю за сохранения синтаксиса оператора. Ну просто по такой логике sizeof, tagof и так далее, они уже изначально объявлены так, функционально. А оператор switch объявлен оператором по синтаксису. Я просто хочу сохранить логику синтаксиса и не вносить в нее изменений (либо делать это очень незначительно и интуитивно). По поводу знака равно: здесь я тоже сомневаюсь, и на самом деле я редактировал свое первое сообщение несколько раз, думая как будет лучше. Вообще без знака равно и со знаком для меня выглядит нормально, но с другой стороны в pawn, наверное, этот знак был ни к чему, поэтому я не говорю про необходимость этого знака

    P.s. к слову добавление такого расширения было бы очень кстати :)
    Последний раз редактировалось MassonNN; 09.01.2020 в 11:25.



    Клетка организма или организм в клетке?

  4. Пользователь сказал cпасибо:
    Pa4enka (09.01.2020)
 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •