Оператор забытого задания «=» и обычное место «: =»

Документация для PL / PGSQL говорит, что объявление и присвоение переменных выполняются с : = . Но простой, короче и более современный (см. Сноску) = , кажется, работает как ожидалось:

    CREATE OR REPLACE FUNCTION foo() RETURNS int AS $$
    DECLARE
      i int;
    BEGIN
      i = 0;  
      WHILE NOT i = 25 LOOP
          i = i + 1;
          i = i * i;
      END LOOP;
      RETURN i;
    END;
    $$ LANGUAGE plpgsql;

    > SELECT foo();
    25

Обратите внимание, что PL / PGSQL может отличить назначение и сравнение, как показано в Линия

      WHILE NOT i = 25 LOOP

Итак, вопросы:

  • Разве я не нашел раздел в документах, которые упоминают и / или объясняет это?
  • Есть ли какие-то известные последствия, использующие = вместо : = ?

Редактирование / сноска:

Пожалуйста, возьмите «более современную» часть с подмигиванием, как в Краткое, неполное и в основном неправильная история языков программирования :

1970 - Niklaus Wirth создает Паскаль, процессуальный язык. Критики Немедленно осуждайте Паскаль, потому что он использует синтаксис «X: = X + Y» Вместо более знакомого C-подобного «X = X + Y». Эта критика случается, несмотря на то, что C еще не был изобретен.

1972 - Деннис Ричи изобретает мощный пистолет, который стреляет как вперед и назад одновременно. Не удовлетворен количеством смертей и постоянные добрасывания из этого изобретения он изобретает C и Unix.

41
задан Moody_Mudskipper 13 November 2018 в 12:58
поделиться