PRIVATE
 Cria e inicializa variáveis de memória e vetores private
------------------------------------------------------------------------------

 Sintaxe

     PRIVATE <identificador> [[:= <inicializador>], ... ]

 Argumentos

     <identificador> é o nome da variável ou vetor private a ser
     criado.  Se <identificador> é seguido de colchêtes ([ ]), um vetor é
     criado e atribuído a <identificador>.  Quando o <identificador> indica
     um vetor, a sintaxe para especificar o número de elementos em cada
     dimensao pode ser vetor[<nElementos>, <nElementos2>,...] ou
     vetor[<nElementos>][<nElementos2>]...  O número máximo de elementos por
     dimensao é 4096.  O número máximo de dimensoes é limitado pela memória
     disponível.

     <inicializador> é a atribuiçao opcional de um valor para a nova
     variável private.  Para um vetor nao se pode dar valores usando
     <inicializador>.  Um <inicializador> para uma variável private consiste
     do operador in-line (:=) seguido de qualquer expressao Clipper
     incluindo um vetor.  Se nenhum <inicializador> for especificado, a
     variável é inicializada com NIL.  No caso de um vetor, cada elemento é
     inicializado com NIL.

     Uma lista de variáveis e vetores pode ser criada e opcionalmente
     inicializada com uma única declaraçao PRIVATE se cada definiçao for
     separada por vírgula.

 Descriçao

     A declaraçao PRIVATE cria variáveis visíveis dentro da rotina corrente
     e aquelas que forem por esta invocadas.  A classe de variável é dita
     como tendo abrangência dinâmica.  Variáveis private existem durante a
     duraçao da rotina ativa ou até que explícitamente liberadas com CLEAR
     ALL, CLEAR MEMORY, ou RELEASE.  Quando uma variável ou vetor private é
     criado, variáveis e vetores public ou private existentes de mesmo nome
     sao ocultos até que a rotina corrente se encerre.

     Tentativas de especificar uma variável private que conflite com
     declaraçoes FIELD, LOCAL, ou STATIC prévias de mesmo nome irao resultar
     num erro fatal de compilador.  Isto ocorre nao importando as
     abrangência da declaraçao.

     Declaraçoes PRIVATE sao executáveis e portanto devem ser especificadas
     dentro do corpo da rotina e devem seguir todas as declaraçoes de
     variáveis como FIELD, LOCAL, MEMVAR, e STATIC.

     Adicionalmente a declaraçao PRIVATE, variáveis PRIVATE podem ser
     criadas de duas maneiras:

       Atribuiçao a uma variável que nao exista ou nao seja visível
        irá criar uma variável private

       Parâmetros recebidos com a declaraçao PARAMETERS sao criados
        como variáveis private com a mesma vida útil e visibilidade

     O número máximo de variáveis e vetores private que podem existir
     simultâneamente num programa é de 2048.

     Para maiores informaçoes sobre declaraçao e abrangência de variáveis,
     leia a seçao de variáveis no capítulo de Conceitos Básicos neste livro.

 Notas

       Compatibilidade: As cláusulas ALL, LIKE, e EXCEPT da
        declaraçao PRIVATE suportadas por outros dialetos dBASE nao o sao em
        Clipper.

 Exemplos

       O exemplo a seguir cria dois vetores private e outras tres
        variáveis também private:

        PRIVATE aArray1[10], aArray2[20], var1, var2, var3

       Este exemplo cria um vetor multi dimensional private usando
        as convençoes de endereçamento de cada elemento:

        PRIVATE aArray[10][10][10], aArray2[10, 10, 10]

       Este exemplo demonstra várias declaraçoes PRIVATE para
        declarar e inicializar vetores e variáveis:

        PRIVATE aArray := { 1, 2, 3, 4 }, aArray2 := ARRAY(12, 24)
        PRIVATE cChar := SPACE(10), cColor := SETCOLOR()
 To download this example - click here.

See Also: FIELD LOCAL MEMVAR PARAMETERS PUBLIC STATIC