Стандартные функции и методы

Стандартные функции

Функция длина

Стандартная функция длина возвращает длину строк, векторов и вариативных параметров, см. также Строка8. Тип результата: Цел64.

Длина строки считается в символах. Для остальных типов длина выдает число элементов.

пусть д1 = длина("Привет") // равно 6
пусть д2 = длина("Привет"(:Байты)) // равно 12

Функции для полиморфных параметров

Стандартные функции тег() и нечто предназначены для работы с полиморфными параметрами

Аргумент функции тег может быть типом или полиморфным параметром или элементом вариативного полиморфного параметра. Для каждого типа определен его Тег, который является постоянным объектом времени исполнения. Постоянный, в данном контексте, контексте, означает, что Тег типа не меняется во время исполнения программы. Тег представлен значением типа Слово64.

Вид аргумента Пример Результат
предопределенный тип тег(Цел64) Тег указанного типа
описанный тип тег(Байты) Тег указанного типа
полиморфный параметр тег(п) Тег параметра
элемент вариативного полиморфного параметра тег(п[номер]) Тег элемента

Аргумент функция нечто должен быть полиморфным параметром или элементом вариативного полиморфного параметра. Функция выдает результат типа Слово64, которые является скрытым представлением значения переданного в полиморфный параметр.

К результату функции нечто может применяется преобразование типа или осторожное преобразование типа.

фн Что это?(п: *) {
    если тег(п) = тег(Цел64) { 
        вывод.ф("это число: %v", нечто(п)(:Цел64)) 
    }
    иначе { 
        вывод.ф("это не число") 
    }
}

Функция ‘сигнатура

Стандартная функция сигнатура должна вызываться с одним аргументом, который должен быть типом функции. Функция возвращает строку, которая содержит представление сигнатуры функцию в некоторой кодировке, зависищей от реализации. Результат функции используется для динамической проверки типа.

Встроенные методы для векторов

Для всех типов векторов определены стандартные методы:

  • добавить

Уточнить набор и семантику методов

Метод ‘добавить’

Метод добавить можно применить к любому вектору. Если вектор типа []T, то метод можно рассматривать, как описанный с заголовком:

фн (в: []T) добавить(аргументы: ...T) 

Это означает, что в вызове метода можно указать любое количество аргументов типа T или одно развернутое выражение.

Вызов метода добавляет к вектору указанные аргументы.

тип Числа = []Цел64

пусть фиб = Числа[1, 1]
фиб.добавить(2, 3, 5)