Skip to content

Модули ​

Скрипт может использовать имена верхнего уровня из другого файла скрипта.

utils.jmp:

jumper
dyn greet(name) { return "Hello, " + name; }
dyn VERSION = "1.0";
class Counter { int n; void inc() { n++; } }

main.jmp в той же папке:

jumper
import "utils";          // или "utils.jmp"; путь относительно папки этого файла

println(greet("modules"), VERSION);   // Hello, modules 1.0
dyn c = new Counter();
c.inc();
println(c.n);                          // 1
  • Каждая функция, класс и переменная верхнего уровня модуля становится именем в импортирующем блоке и видна во всём блоке.
  • Модуль выполняется один раз на интерпретатор, сколько бы файлов его ни импортировали. Циклические импорты - ошибка.
  • Импортированные имена - константы, им нельзя присваивать. Переменные сохраняют значение, которое было у них после выполнения модуля; таблицы и объекты общие.
  • Под политикой доступа модули выключены, если в политике нет Policy.allowModules();.

Классы Java импортируются иначе, по имени: import java.util.HashMap;, см. Работа с Java.

Распространяется под лицензией MIT.