Compartilhar via


Funções de contêiner em tempo de execução da X++

Observação

Grupos de interesse da comunidade mudaram do Yammer para o Microsoft Viva Engage. Para ingressar em uma comunidade do Viva Engage e participar das discussões mais recentes, preencha o formulário Solicitar acesso às Finanças e Operações viva engage community e escolha a comunidade que você deseja ingressar.

Este artigo descreve as funções de tempo de execução do contêiner.

Essas funções manipulam o conteúdo dos contêineres.

conDel

Remove o número especificado de elementos de um contêiner.

Sintaxe

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

Parâmetros

Parâmetro Description
contêiner O contêiner do qual remover elementos.
start A posição baseada em um na qual iniciar a remoção de elementos.
número O número de elementos a serem excluídos.

Valor de retorno

Um novo contêiner que não inclui os elementos removidos.

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

Localiza a primeira ocorrência de um elemento em um contêiner.

Sintaxe

int conFind(container container, anytype element)

Parâmetros

Parâmetro Description
contêiner O contêiner a ser pesquisado.
elemento O elemento a ser pesquisado.

Valor de retorno

0 se o item não foi encontrado; caso contrário, o número de sequência do item.

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

Insere um ou mais elementos em um contêiner.

Sintaxe

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

Parâmetros

Parâmetro Description
contêiner O contêiner no qual inserir elementos.
start A posição em que inserir elementos.
elemento Um ou mais elementos a serem inseridos, separados por vírgulas.

Valor de retorno

Um novo contêiner que contém os elementos inseridos.

Observações

O primeiro elemento do contêiner é especificado pelo número 1. Para inserir após o elemento n, o parâmetro inicial deve ser n+1. Você também pode usar o += operador para adicionar valores de qualquer tipo a um contêiner. Por exemplo, para criar um contêiner que contenha os valores quadrados das primeiras 10 iterações de loop, use o código a seguir.

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

Recupera o número de elementos em um contêiner.

Sintaxe

int conLen(container container)

Parâmetros

Parâmetro Description
contêiner O contêiner no qual contar o número de elementos.

Valor de retorno

O número de elementos no contêiner. O contêiner conNull não tem elementos.

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

Recupera um contêiner vazio.

container conNull()

Valor de retorno

Um contêiner vazio.

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

Recupera um elemento específico de um contêiner e o converte em outro tipo de dados, se a conversão for necessária.

Sintaxe

anytype conPeek(container container, int number)

Parâmetros

Parâmetro Description
contêiner O contêiner do qual retornar um elemento.
número A posição do elemento a ser retornado. Especifique 1 para obter o primeiro elemento. Um número de posição inválido, como -3, 0 ou um número maior que o comprimento do contêiner, pode causar erros imprevisíveis.

Valor de retorno

O elemento no contêiner na posição especificada pelo parâmetro de número . A função conPeek converte automaticamente o item espiado no tipo de retorno esperado. As cadeias de caracteres podem ser convertidas automaticamente em números inteiros e reais, e números inteiros e reais podem ser convertidos em cadeias de caracteres.

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

Modifica um contêiner substituindo um ou mais dos elementos existentes.

Sintaxe

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

Parâmetros

Parâmetro Description
contêiner O contêiner a ser modificado.
start A posição do primeiro elemento a ser substituído.
elemento Um ou mais elementos a serem substituídos, separados por vírgulas.

Valor de retorno

Um novo contêiner que inclui os novos elementos.

Observações

O primeiro elemento do contêiner é especificado pelo número 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);
}