std
Содержит вспомогательные функции общего назначения
Константы
ARGS : string Desktop = command-line arguments
Функции
arrayCombine(keys, values) - создаёт объект на основе двух массивов
arrayKeyExists(key, map) - проверяет, содержится ли ключ key в объекте map. 1 - содержится, 0 - нет
arrayKeys(map) - возвращает массив ключей карты
arrayValues(map) - возвращает массив значений карты
charAt(input, index) - возвращает код символа в позиции index строки input
clearConsole() Android - очищает консоль
echo(arg...) - выводит значения в консоль, разделяя их пробелом, а потом ставит перенос строки. Может принимать переменное значение аргументов
Пример
echo(1, "abc") // выведет строку "1 abc" в консоль
echo(1, 2, 3, 4, 5, "a", "b") // выведет строку "1 2 3 4 5 a b" в консоль"
indexOf(input, what, index = 0) - поиск первого вхождения подстроки what в строке input, начиная с позиции index
join(array, delimiter = "", prefix = "", suffix = "") - объединяет массив в строку с разделителем delimiter, префиксом prefix и суффиксом suffix
lastIndexOf(input, what, index = 0) - поиск последнего вхождения подстроки what в строке input, начиная с позиции index
length(x) - возвращает длину строки, размер массива/объекта или количество аргументов функции в зависимости от типа аргумента x
newarray(size...) - оздаёт массив с размером size. Если указать 1 аргумент - создаётся одномерный массив, если 2 аргумента - двухмерный и т.д
Пример
newarray(4) // [0, 0, 0, 0]
newarray(2, 3) // [[0, 0, 0], [0, 0, 0]]
parseInt(str, radix) - парсит строку в целое число с указанным основанием
parseLong(str, radix) - парсит строку в длинное целое число с указанным основанием
rand(from = 0, to = ..) - возвращает псевдослучайное число. Если вызвать функцию без аргументов, возвращается вещественное число от 0 до 1. Если указан один аргумент - возвращается целое число в диапазоне [0...значение). Если указаны два аргумента - возвращается псевдослучайное число в промежутке [from...to)
range(from = 0, to, step = 1) - создаёт массив с элементами числового промежутка. Элементы вычисляются по мере их использования, так что в цикле foreach можно использовать любые промежутки.
range(to) - создаёт промежуток от 0 до to (не включительно) с шагом 1
range(from, to) - создаёт промежуток от from до to (не включительно) с шагом 1
range(from, to, step) - создаёт промежуток от from до to (не включительно) с шагом step
Пример
print range(3) // [0, 1, 2]
r = range(-5, 0) // [-5, -4, -3, -2, -1]
print r[0] // -5
print r[2] // -3
for x : range(20, 9, -5) {
println x
} // 20 15 10
readln(x) Desktop - чтение строки из консоли
replace(str, target, replacement) - заменяет все вхождения подстроки target на строку replacement
replaceAll(str, regex, replacement) - заменяет все вхождения регулярного выражения regex на строку replacement
replaceFirst(str, regex, replacement) - заменяет первое вхождение регулярного выражения regex на строку replacement
sleep(time) - приостановка текущего потока на time миллисекунд
sort(array, comparator = ..) - сортирует массив. Если задана функция comparator, то сортировка будет производится на основе результата функции сравнения
split(str, regex, limit = 0) - разделяет строку str по шаблону regex и помещает элементы в массив. Если указан параметр limit, то будет произведено не более limit разбиений, соответственно размер результирующего массива будет ограничен этим значением limit
Пример
split("a5b5c5d5e", "5") // ["a", "b", "c", "d", "e"]
split("a5b5c5d5e", "5", 3) // ["a", "b", "c5d5e"]
sprintf(format, args...) - форматирует строку
substring(str, startIndex, endIndex = ..) - обрезает строку str, начиная от символа после позиции startIndex и по endIndex. Если endIndex не указан, обрезается до конца строки
Пример
substring("abcde", 1) // bcde
substring("abcde", 2, 4) // cd
sync(callback) - делает асинхронный вызов синхронным
Пример
result = sync(def(ret) {
http(url, def(t) = ret(t))
})
thread(func, args...) - создаёт новый поток и передаёт параметры, если есть.
func - функция, ссылка на функцию (::function) или имя функции ("function")
args - 0 или более аргументов, которые необходимо передать в функцию func
Пример
thread(def() {
print "New Thread"
})
thread(::newthread, 10)
thread("newthread", 20)
def newthread(x) {
print "New Thread. x = " + x
}
time() - возвращает текущее время в миллисекундах начиная с 1970 года
toChar(code) - переводит код символа в строку
Пример
toChar(48) // "0"
toHexString(number) - конвертирует число в строку с шестнадцатиричным представлением
toLowerCase(str) - переводит все символы строки в нижний регистр
toUpperCase(str) - переводит все символы строки в верхний регистр
trim(str) - обрезает пробельные невидимые символы по обоим концам строки
try(unsafeFunction, catchFunction = def(type, message) = -1) - подавляет любые ошибки в unsafeFunction и возрвщает результат функции catchFunction, если была ошибка
Пример
try(def() = "успех") // успех
try(def() = try + 2) // -1
try(def() = try(), def(type, message) = sprintf("Обработана ошибка:\nтип: %s\nсообщение: %s", type, message))