PRIVATE
 Crea e inicializa matrices y variables de memoria privadas
------------------------------------------------------------------------------
 Sintaxis

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

 Argumentos

     <identificador> es el nombre de la variable o matriz privada que se
     va a crear. Si <identificador> va seguido de corchetes ([ ]), se
     crea una matriz y se asigna a <identificador>. Si <identificador> se
     especifica como una matriz, la sintaxis para indicar el número de
     elementos de cada dimensión puede ser matriz[<nElementos>,
     <nElementos2>,...] o matriz[<nElementos>][<nElementos2>]... El número
     máximo de elementos por dimensión es 4096. El número máximo de
     dimensiones sólo depende de la cantidad de memoria disponible.

     <inicializador> es el valor que se asigna opcionalmente a la nueva
     variable privada. No es posible asignar valores a una matriz con
     <inicializador>. El <inicializador> para una variable privada está
     formado por el operador de asignación en línea (:=) seguido de
     cualquier expresión válida de CA-Clipper, incluyendo matrices
     literales. Si no se especifica un <inicializador>, la variable se
     inicializa con el valor NIL. Con una matriz, todos sus elementos se
     inicializan con el valor NIL.

     Es posible crear y, opcionalmente, inicializar una lista de variables y
     matrices en la misma sentencia PRIVATE, separando las definiciones
     mediante comas.

 Descripción

     La sentencia PRIVATE crea variables y matrices que sólo son visibles
     dentro de los procedimientos y funciones que las crean y las invocadas
     por ellas. Esta clase de variables se denominan de ámbito dinámico. Las
     variables privadas existen mientras el procedimiento que las creó no
     finalice o hasta que se liberen explícitamente con CLEAR ALL, CLEAR
     MEMORY o RELEASE. Al crear una matriz o variable privada, las variables
     privadas y públicas existentes y visibles que tengan el mismo nombre se
     ocultan hasta que termine el procedimiento o función actual.

     Si se intenta especificar una variable PRIVATE en conflicto con una
     declaración FIELD, LOCAL o STATIC del mismo nombre, se produce un error
     grave de compilación, independientemente del ámbito de la declaración.

     Las sentencias PRIVATE son sentencias ejecutables, por lo que deben
     especificarse en el cuerpo del procedimiento o función definida por el
     usuario después de todas las declaraciones de variables, como FIELD,
     LOCAL, MEMVAR y STATIC.

     Además de la sentencia PRIVATE, también pueden crearse variables
     privadas de estas dos formas:

      Una asignación a una variable inexistente o no visible creará
        una variable privada

      Los parámetros recibidos con la sentencia PARAMETERS se crean
        como variables privadas con la misma visibilidad y tiempo de vida

     No puede haber más de 2048 matrices y variables públicas y privadas
     dentro de un mismo programa.

     Si desea más información sobre las declaraciones de variables y su
     ámbito, consulte el apartado Variables del capítulo "Conceptos Básicos"
     de la Guía de Programación y Utilidades.

 Notas

     ■ Compatibilidad: Las cláusulas ALL, LIKE y EXCEPT de la
        sentencia PRIVATE utilizadas en otros dialectos dBASE no pueden
        utilizarse en CA-Clipper.

 Ejemplos

      Este ejemplo crea dos matrices y tres variables PRIVATE:

        PRIVATE aMatriz1[10], aMatriz2[20], var1, var2, var3

      Este ejemplo crea matrices privadas multidimensionales
        utilizando las dos notaciones:

        PRIVATE aMatriz1[10][10][10], aMatriz2[10, 10, 10]

      Este ejemplo utiliza sentencias PRIVATE para crear e
        inicializar matrices y variables:

        PRIVATE aMatriz := { 1, 2, 3, 4 }, ;
              aMatriz2 := ARRAY(12, 24)
        PRIVATE cCar := SPACE(10), cColor := SETCOLOR()

 To download this example - click here.

See Also: FIELD LOCAL MEMVAR PARAMETERS PUBLIC STATIC