Поделиться через


Контейнерные функции времени выполнения X++

Замечание

Группы интересов сообщества теперь переехали из Yammer в Microsoft Viva Engage. Чтобы присоединиться к сообществу Viva Engage и принять участие в последних обсуждениях, заполните форму " Запрос доступа к финансам и операциям Viva Engage Community " и выберите сообщество, к которому вы хотите присоединиться.

В этой статье описываются функции времени выполнения контейнера.

Эти функции управляют содержимым контейнеров.

conDel

Удаляет указанное количество элементов из контейнера.

Синтаксис

container conDel(container container, int start, int number)

Параметры

Параметр Description
container Контейнер для удаления элементов из него.
start Одноуровневая позиция, с которой начинается удаление элементов.
число/номер Число удаленных элементов.

Возвращаемое значение

Новый контейнер, который не включает удаленные элементы.

Example

static void conDelExample(Args _args)
{
    container c = ["Hello world", 1, 3.14];
    
    // Deletes the first two items from the container.
    c = conDel(c, 1, 2);
}

conFind

Находит первое вхождение элемента в контейнере.

Синтаксис

int conFind(container container, anytype element)

Параметры

Параметр Description
container Контейнер для поиска.
элемент Элемент для поиска.

Возвращаемое значение

Значение 0 , если элемент не найден; в противном случае — порядковый номер элемента.

Example

static void conFindExample(Args _args)
{
    container c = ["item1", "item2", "item3"];
    int i = conFind(c, "item2");
    int j = conFind(c, "item4");

    print "Position of 'item2' in container is " + int2Str(i);
    print "Position of 'item4' in container is " + int2Str(j);
}

conIns

Вставляет один или несколько элементов в контейнер.

Синтаксис

container conIns(container container, int start, anytype element, ... )

Параметры

Параметр Description
container Контейнер для вставки элементов в.
start Позиция вставки элементов в.
элемент Один или несколько элементов для вставки, разделенных запятыми.

Возвращаемое значение

Новый контейнер, содержащий вставленные элементы.

Замечания

Первый элемент контейнера задается номером 1. Чтобы вставить после элемента n , начальный параметр должен иметь значение n+1. Оператор также можно использовать += для добавления значений любого типа в контейнер. Например, чтобы создать контейнер, содержащий квадратные значения первых 10 итерации цикла, используйте следующий код.

int i;
container c;

for (i = 1; i < = 10; i++)
{
    // Append the square of the index to the container
    c += i*i;
}

Example

static void conInsExample(Args _arg)
{
    container c;
    int i;

    c = conIns(c,1,"item1");
    c = conIns(c,2,"item2");

    for (i = 1 ; i <= conLen(c) ; i++)
    {
        // Prints the content of a container.
        print conPeek(c, i);
    }
}

conLen

Извлекает количество элементов в контейнере.

Синтаксис

int conLen(container container)

Параметры

Параметр Description
container Контейнер для подсчета количества элементов в.

Возвращаемое значение

Количество элементов в контейнере. Контейнер conNull не имеет элементов.

Example

static void conLenExample(Args _arg)
{
    container c = conins(["item1", "item2"], 1);

    for (int i = 1 ; i <= conLen(c) ; i++)
    {
        print conPeek(c, i);
    }
}

conNull

Извлекает пустой контейнер.

container conNull()

Возвращаемое значение

Пустой контейнер.

Example

static void conNullExample(Args _arg)
{
    container c = ["item1", "item2", "item3"];

    print "The size of container is " + int2str(conLen(c));

    // Set the container to null.
    c = conNull();
    print "Size of container after conNull() is " + int2Str(conLen(c));
}

conPeek

Извлекает определенный элемент из контейнера и преобразует его в другой тип данных, если требуется преобразование.

Синтаксис

anytype conPeek(container container, int number)

Параметры

Параметр Description
container Контейнер, из который возвращается элемент.
число/номер Положение возвращаемого элемента. Укажите 1 , чтобы получить первый элемент. Недопустимое число позиции, например -3, 0 или число, превышающее длину контейнера, может привести к непредсказуемым ошибкам.

Возвращаемое значение

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

Example

static void main(Args _args)
{
    container cnI, cnJ;
    int i, j;
    anytype aty;
    
    info("container cnI ...");
    cnI = ["itemBlue", "itemYellow"];

    for (i=1; i <= conLen(cnI); i++)
    {
        aty = conPeek(cnI, i);
        info(int2str(i) + " :  " + aty);
    }

    info("container cnJ ...");
    cnJ = conIns(cnI, 2, "ItemInserted");

    for (j=1; j <= conLen(cnJ); j++)
    {
        aty = conPeek(cnJ, j);
        info(int2str(j) + " :  " + aty);
    }
}
/***  Output pasted from InfoLog ...
Message (10:20:03 am)
container cnI ...
1 :  itemBlue
2 :  itemYellow
container cnJ ...
1 :  itemBlue
2 :  ItemInserted
3 :  itemYellow
***/

conPoke

Изменяет контейнер, заменив один или несколько существующих элементов.

Синтаксис

container conPoke(container container, int start, anytype element, ...)

Параметры

Параметр Description
container Контейнер для изменения.
start Позиция первого элемента для замены.
элемент Один или несколько элементов для замены, разделенных запятыми.

Возвращаемое значение

Новый контейнер, включающий новые элементы.

Замечания

Первый элемент контейнера задается номером 1.

Example

static void conPokeExample(Args _arg)
{
    container c1 = ["item1", "item2", "item3"];
    container c2;
    int i;

    void conPrint(container c)
    {
        for (i = 1 ; i <= conLen(c) ; i++)
        {
            print conPeek(c, i);
        }
    }

    conPrint(c1);
    c2 = conPoke(c1, 2, "PokedItem");
    print "";
    conPrint(c2);
}