Модули
Скрипт может использовать имена верхнего уровня из другого файла скрипта.
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.