Перейти к содержанию

6. Типы данных и встроенные методы

← Ввод, вывод и системные команды · Оглавление · Далее: Java-доступ и импорты →

Методы вызываются через точку. Для базовых типов встроенные методы имеют приоритет над Java reflection. Если встроенного метода с таким именем нет, интерпретатор пытается вызвать Java-поле или Java-метод.

Null

$value = null
println $value.To-String()
Метод Возвращает Описание
To-String() String Возвращает строку "null".

Boolean

$enabled = true
println $enabled.To-String()
Метод Возвращает Описание
To-String() String Возвращает "true" или "false".

Number

Числа бывают целыми (Integer) и дробными (Decimal).

$integer = 10
$decimal = 10.5

println $decimal.Round()
println (-5).Abs()
Метод Возвращает Описание
To-String() String Преобразует число в строку.
Abs() Number Абсолютное значение.
Round() Integer Округляет до ближайшего целого.
Floor() Integer Округляет вниз.
Ceil() Integer Округляет вверх.

String

$text = " Hello, JOBS "
println $text.Trim().To-Upper()
println $text.Contains("JOBS")
Метод Возвращает Описание
Size() / Length() Integer Длина строки.
Is-Empty() Boolean Проверяет пустую строку.
Contains($value) Boolean Проверяет наличие подстроки.
Starts-With($prefix) Boolean Проверяет начало строки.
Ends-With($suffix) Boolean Проверяет конец строки.
To-Upper() / To-Lower() String Меняет регистр.
Trim() String Убирает пробелы по краям.
Substring($start) String Подстрока от индекса до конца.
Substring($start, $end) String Подстрока до $end, не включая $end.
Split($delimiter) List Разбивает строку по разделителю.
Matches($regex) Boolean Проверяет соответствие всей строки регулярному выражению.
Contains-Match($regex) / Find($regex) Boolean Ищет совпадение регулярного выражения.
Replace($regex, $replacement) String Заменяет совпадения.
Split-Regex($regex) List Разбивает по регулярному выражению.

Regex

Регулярные выражения задаются литералом re"..." и представлены Java-типом java.util.regex.Pattern.

$email = re"^[^@]+@[^@]+\\.[^@]+$"
if $email.Matches("hello@example.com") {
    println "valid"
}

$parts = re"\\s+".Split("one two  three")
println $parts.Join(", ")

В re"..." используются те же escape-последовательности, что и в строках. Поэтому для Java-регулярки \d+ нужно писать re"\\d+".

Метод Возвращает Описание
To-String() String Возвращает исходный шаблон.
Matches($text) Boolean Проверяет весь текст.
Contains($text) / Find($text) Boolean Ищет совпадение.
First($text) String / Null Первое совпадение или null.
Group($text, $index) String / Null Группа первого совпадения.
Replace($text, $replacement) String Заменяет совпадения.
Split($text) List Разбивает текст.

Path

$config = p"/etc" / "app" / "config.yaml"
$relative = p"build/output.txt"

if $relative.Parent().Exists() {
    println $relative.Name()
}
Метод Возвращает Описание
To-String() String Преобразует путь в строку.
Name() / File-Name() String / Null Имя последнего элемента.
Parent() Path / Null Родительский путь.
Root() Path / Null Корень пути.
Is-Absolute() Boolean Проверяет абсолютность.
Absolute() Path Абсолютный путь.
Normalize() Path Нормализованный путь.
Resolve($path) / Join($path) Path Добавляет сегмент.
Sibling($path) / Resolve-Sibling($path) Path Путь-сосед.
Relativize($path) Path Относительный путь.
Starts-With($path) / Ends-With($path) Boolean Проверяет начало или конец пути.
Exists() Boolean Проверяет существование.
Is-File() / Is-Directory() Boolean Проверяет тип объекта ФС.
Create-Directories() Path Создаёт директории и возвращает путь.

List

$items = [1, 2]
$items.Add(3)
$items.Insert(0, 0)
$old = $items.Set(1, 10)

if $items.Contains(3) {
    println $items.Join(", ")
}
Метод Возвращает Описание
Size() Integer Количество элементов.
Is-Empty() Boolean Проверяет пустой список.
Contains($value) Boolean Проверяет наличие значения.
Get($index) Any Элемент по индексу с нуля.
First() / Last() Any Первый или последний элемент.
Copy() List Поверхностная копия.
Reverse() List Новый список в обратном порядке.
Join() / Join($delimiter) String Склеивает элементы.
Add($value) List Добавляет элемент.
Insert($index, $value) List Вставляет элемент.
Set($index, $value) Any Заменяет элемент, возвращает старый.
Remove($value) Boolean Удаляет первое совпадение.
Remove-At($index) Any Удаляет и возвращает элемент.
Clear() List Очищает список.

Map / HashMap

$archive = map {
    "name": "archive.tar"
    "size": 1024
    1: ["first", "second"]
}

println $archive.Get("name")
println $archive.Get(1).Join(", ")
Метод Возвращает Описание
Size() Integer Количество пар.
Is-Empty() Boolean Проверяет пустую map.
Contains($key) / Contains-Key($key) Boolean Проверяет наличие ключа.
Get($key) Any Значение по ключу или null.
Keys() List Ключи в порядке вставки.
Values() List Значения в порядке вставки.
Copy() Map Поверхностная копия.
Set($key, $value) / Put($key, $value) Map Записывает значение.
Remove($key) Any Удаляет ключ и возвращает старое значение.
Clear() Map Очищает map.

← Ввод, вывод и системные команды · Оглавление · Далее: Java-доступ и импорты →