4D v16.3

Arrays e a linguagem 4D

Página Inicial

 
4D v16.3
Arrays e a linguagem 4D

Arrays e a linguagem 4D  


 

 

Arrays são variáveis 4D. Como qualquer variável, um array tem um alcance e segue as regras da linguagem 4D, mas com algumas diferenças.

Você pode criar e trabalhar com arrays locais, de processo e de interprocesso. Exemplos:

 ARRAY INTEGER($aiCodigos;100) ` Cria um array local de 100 valores inteiros de 2 bytes
 ARRAY INTEGER(aiCodigos;100) ` Cria um array de processo de 100 valores inteiros de 2 bytes
 ARRAY INTEGER(◊aiCodigos;100) ` Cria um array de interprocesso de 100 valores inteiros de 2 bytes

O alcance de estes arrays é idêntico ao alcance de outras variáveis locais, de processo e de interprocesso:

É declarado um array local aquele com nome que se inicia com o símbolo do dólar ($).

O alcance de um array local é o método em que foi criado. O array se apaga quando o método termina. Arrays locais com o mesmo nome em dois métodos diferentes podem ter tipos diferentes, porque na verdade, são duas variáveis diferentes com alcances diferentes.

Quando cria-se um array local em um método de formulário, de objeto ou de projeto, chamado de sub-rotina pelos dois tipos de métodos anteriores, o array é criado e apagado cada vez que o método de formulário ou de objeto é convocado. Em outras palavras, o array é criado e apagado para cada evento de formulário. Consequentemente, você não pode usar arrays locais em formulários, nem para visualizar, nem para imprimir.

Como no caso de variáveis locais, é uma boa idéia usar os arrays locais sempre que possível. Ao agir assim, minimiza-se a quantidade de memória necessária para rodar sua aplicação.

É declarado um array de processo aquele com nome que se inicia com uma letra.

O alcance de um array de processo é o processo em que foi criado. O array é apagado quando o processo encerra ou é abortado. Um array de processo dispõe de uma instância criada automaticamente para cada processo. Portanto, o array é do mesmo tipo para todos os processos. No entanto, seu conteúdo é particular para cada processo.

É declarado um array de interprocesso aquele com nome que se inicia com <> (no Windows ou Macintosh) ou com o símbolo de diamante, Opção-Shift-V em um teclado americano (apenas no Macintosh).

O alcance de um array de interprocesso consiste na totalidade de processos durante uma sessão de trabalho. Devem ser utilizados apenas para compartilhar dados e transferir informação entre processos.

Dica: quando sabe-se com antecedência que um array de interprocesso será acessado por vários processos que podem causar conflitos, proteja o acesso ao array com um semáforo. Para maiores informações, veja o exemplo no comando Semaphore.

Nota: Pode-se utilizar arrays de processo e de interprocesso em formulários para criar objetos de formulário como áreas de rolagem, listas de drop-dowm, etc.

Pode-se passar um array como parâmetro a um comando 4D ou a uma rotina de plug-in 4D. Por outro lado, não se pode passar um array como parâmetro para um método de usuário. A solução é passar um ponteiro ao array como parâmetro ao método. Para mais detalhes, confira a seção Arrays e ponteiros.

Diferente de variáveis de texto e alfanuméricas, não se pode apontar um array a outro. Para copiar (apontar) um array a outro, utilize a função COPY ARRAY.



Ver também 

Arrays
Arrays e ponteiros

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)