Поиск публикаций
WDSP Script
Язык WDSP
Оглавление
Переменные и константы
В WDSP переменные всегда начинаются с символа ₽ (рубль). Константы объявляются ключевым словом константа и не могут быть изменены.
₽имя = значение
Объявление переменной с инициализацией.
константа ИМЯ = значение
Объявление константы (имя без ₽).
₽переменная = 42; константа ПИ = 3.14159; ₽строка = "Привет, мир!"; ₽логическое = истина;
Арифметические операции
Поддерживаются стандартные операторы: +, -, *, /, % (остаток от деления).
₽а = 10; ₽б = 3; ₽сумма = ₽а + ₽б; ₽разность = ₽а - ₽б; ₽произведение = ₽а * ₽б; ₽частное = ₽а / ₽б; ₽остаток = ₽а % ₽б;
Логические операции и сравнения
Поддерживаются операторы сравнения: ==, !=, <, >, <=, >=.
Логические: && (и), || (или), ! (не).
Логические значения: истина, ложь.
₽истина1 = (5 > 3) && (2 < 4); ₽равно = (10 == 10); ₽неравно = (10 != 5);
Условный оператор если
Синтаксис: если (условие) { ... } иначе { ... }.
если (₽возраст >= 18) { вывод("Совершеннолетний"); } иначе { вывод("Несовершеннолетний"); }
Циклы
пока (условие) { ... }
Цикл с предусловием.
₽счетчик = 1; пока (₽счетчик <= 3) { вывод("итерация " + число(₽счетчик)); ₽счетчик = ₽счетчик + 1; }
для (инициализация; условие; шаг) { ... }
Классический цикл для.
для (₽i = 0; ₽i < 3; ₽i = ₽i + 1) { вывод("i = " + число(₽i)); }
для каждого (₽элемент из массив) { ... }
Перебор элементов массива.
₽массив = [10, 20, 30]; для каждого (₽элемент из ₽массив) { вывод(число(₽элемент)); }
Функции
Объявляются ключевым словом функция. Параметры — переменные с ₽. Возврат значения — возврат.
функция квадрат(₽x) { возврат ₽x * ₽x; } ₽результат = квадрат(5);
Лямбда-выражения
Анонимная функция записывается как функция(параметры) { тело }.
₽умножить = функция(₽a, ₽b) { возврат ₽a * ₽b; }; ₽произв = ₽умножить(6, 7);
Классы и наследование
класс Имя { ... }
Поля класса объявляются с ₽, методы — без. Конструктор — конструктор.
класс Дочерний расширяет Родительский { ... }
Наследование. Вызов родительского конструктора — супер(аргументы), метода — супер.имяМетода(аргументы).
класс Точка { ₽x; ₽y; конструктор(₽x, ₽y) { это.₽x = ₽x; это.₽y = ₽y; } показать() { вывод("Точка(" + число(это.₽x) + ", " + число(это.₽y) + ")"); } } класс Точка3D расширяет Точка { ₽z; конструктор(₽x, ₽y, ₽z) { супер(₽x, ₽y); это.₽z = ₽z; } показать() { вывод("Точка3D(" + число(это.₽x) + ", " + число(это.₽y) + ", " + число(это.₽z) + ")"); } } ₽p1 = новый Точка(3, 4); ₽p2 = новый Точка3D(1, 2, 3);
Исключения
Конструкция попытка { ... } ловушка(₽переменная) { ... } наконец { ... }.
Для генерации исключения используется бросить значение.
попытка { ₽делитель = 0; если (₽делитель == 0) { бросить "Ошибка: деление на ноль"; } ₽результат = 100 / ₽делитель; } ловушка(₽ошибка) { вывод("Перехвачено: " + ₽ошибка); } наконец { вывод("Блок finally выполнен"); }
Массивы
Массивы создаются с помощью квадратных скобок: [элемент1, элемент2, ...].
Доступ по индексу: ₽массив[индекс].
Свойство длина возвращает количество элементов.
₽числа = [1, 2, 3, 4, 5]; ₽числа[2] = 99; ₽длина = ₽числа.длина;
Объекты-литералы
Объект создаётся фигурными скобками с парами "ключ": значение. Методы могут быть лямбдами, внутри которых это ссылается на сам объект.
₽человек = { "имя": "Иван", "возраст": 30, "приветствие": функция() { возврат "Меня зовут " + это.имя; } }; вывод(₽человек.имя); вывод(₽человек.приветствие());
Преобразования типов
Встроенные функции:
число(значение)— преобразует в число.строка(значение)— преобразует в строку.логический(значение)— преобразует в логическое.тип(значение)— возвращает строку с именем типа:"число","строка","логический","массив","объект","функция","ничто".округлить(число, разряды)— округляет до указанного количества знаков после запятой.
₽числоИзСтр = число("123.45"); ₽строкаИзЧисла = строка(987); ₽типПеременной = тип(₽строка); // "строка"
Время выполнения
Функция время() возвращает текущее количество секунд с начала эпохи (с плавающей точкой). Разница даёт затраченное время.
₽начало = время(); // ... код ... ₽конец = время(); ₽затрачено = округлить(₽конец - ₽начало, 4); вывод("Время (сек): " + число(₽затрачено));
Случайные числа
случайное(минимум, максимум) — возвращает целое случайное число в диапазоне [минимум, максимум] (включительно).
₽случ = случайное(1, 100); вывод("Случайное: " + число(₽случ));
Ввод-вывод
вывод(текст) — выводит строку на консоль (с переводом строки).
вывод("Привет, мир!"); вывод("Число: " + число(42));