Использование интерактивной оболочки (REPL)

Google Apps Script:
Использование интерактивной оболочки (REPL)

Как это сделать:

Google Apps Script — это облачный скриптовый язык для автоматизации задач в продуктах Google, который не имеет встроенного инструмента REPL, подобного тем, что есть в языках, таких как Python или Node.js JavaScript. Однако вы можете симулировать похожий опыт, используя функции ведения журнала и отладки редактора Apps Script или настроив внешнюю среду. Здесь мы сосредоточимся на создании импровизированной REPL в редакторе Apps Script.

  1. Создание импровизированной функции REPL:
function myREPL() {
  var input = Logger.log('Введите выражение: ');
  try {
    var result = eval(input);
    Logger.log('Результат: ' + result);
  } catch(e) {
    Logger.log('Ошибка: ' + e.message);
  }
}

Поскольку прямой пользовательский ввод в той же мере, как в традиционной REPL, в среде Apps Script невозможен, вы можете вручную изменить переменную input и запустить myREPL(), чтобы проверить выражения.

  1. Выполнение образца кода:

Допустим, вы хотите вычислить 2+2. Вы должны изменить функцию myREPL следующим образом:

function myREPL() {
  var input = '2+2'; // Вручную введите ваше выражение здесь
  // Остальное остается прежним...
}

После запуска myREPL() проверьте Журналы (Просмотр > Журналы) для вывода, который должен выглядеть примерно так:

[20-xx-xxxx xx:xx:xx:xxx] Введите ваше выражение:
[20-xx-xxxx xx:xx:xx:xxx] Результат: 4
  1. Отладка с помощью Logger:

Для более сложной отладки вставляйте Logger.log(variable); в свой код, чтобы печатать состояния переменных и помогать вам понимать поток и промежуточные состояния ваших скриптов.

Глубокое погружение

Концепция REPL глубоко укоренилась в истории вычислений, начиная с систем разделения времени 1960-х годов, которые позволяли проводить интерактивные сессии. Языки, такие как Lisp, процветали в этой среде, поскольку REPL был критически важен для их итеративного процесса разработки. В отличие от этого, Google Apps Script, появившийся гораздо позже, в первую очередь разработан для веба, сосредоточен на автоматизации задач в наборе инструментов Google, а не на итеративном, консольном программировании.

Google Apps Script традиционно не поддерживает реальные интерактивные сессии кодирования “из коробки” из-за его облачной природы и ориентации на развертывание веб-приложений. Его модель выполнения основана на функциях, запускаемых веб-событиями, таймерами или ручным вызовом в среде, а не на мгновенных обратных связях, предоставляемых REPL.

Хотя импровизированный REPL и отладчик в редакторе Apps Script предлагают некоторый уровень интерактивности, они не в полной мере воспроизводят немедленную обратную связь и эффективность традиционных REPL, найденных во многих языках программирования. Разработчики, ищущие более подлинный опыт REPL с технологиями Google, могут изучить внешние среды JavaScript или Node.js с API Google. Это может обеспечить более отзывчивую и интерактивную сессию кодирования, хотя и потребует большей настройки и, возможно, выхода за пределы непосредственной среды Apps Script.