Почему функции выполняются, даже если они не вызываются?

#google-apps-script

Вопрос:

Я надеюсь, что этот вопрос найдет вас здоровым.

Вот сценарий Google Apps в полном объеме:

 function myFunction() {
  console.log("hello");
}
 

Когда я «Запускаю» этот сценарий https://script.google.com/ , мне возвращается следующее:

 Execution log

5:23:46 PM Notice Execution started
5:23:46 PM Info hello
5:23:46 PM Notice Execution completed
 

Поскольку я не звонил myFunction , я бы не ожидал увидеть "hello" в журнале выполнения. И все же она есть. Почему? И есть ли способ заставить сценарий Google Apps вести себя так же, как все другие среды императивного программирования в мире?

Ответ №1:

Когда вы запускаете сценарий в бегуне AppsScript, я предполагаю, что вы нажимаете Run пункт меню (или, возможно Debug , пункт). При этом вам также нужно посмотреть, какое имя функции выбрано в раскрывающемся списке имя функции справа от этого Run пункта меню (после Debug пункта меню).

Какая бы функция ни была выбрана (и сохранена), она будет выполнена. Если у вас есть только одна функция во всем сценарии, она будет выбрана по умолчанию.

введите описание изображения здесь

В программе запуска скрипта невозможно выбрать «нет функции».

(И если в вашем сценарии нет функций, то раскрывающийся список будет выделен серым цветом и просто отобразится No functions .)

Комментарии:

1. Если есть только одна функция, она выполняется. В противном случае вам придется выбрать сценарий до того, как будет доступна кнопка «Выполнить».