Acerca De Array Embebidos (Embedded Arrays)


Objetivo: Acerca De Array Embebidos (Embedded Arrays)
Una pregunta...

Estaba leyendo la documentación de gambas acerca de arrays y encontré lo siguiente:

An embedded array is an array that is allocated directly inside the object where it is declared.
(Un array embebido es un array que está ubicado directamente dentro de un objeto donde es declarado)

Such an array cannot be shared, and is destroyed with the object.
(Dicho array no puede ser compartido y es destruido junto con el objeto)

An embedded array cannot be public, and you cannot initialize it.
(Un array embebido no puede ser público y no puede ser inicializado)

Ahora bien... En uno de mis proyectos en gambas tengo clases que dentro tienen objects[] y strings[] y si que los puedo inicializar, puedo declararlos como public, los uso y los puedo acceder desde fuera del objeto y demás...

Y funciona de maravillas... Uso gambas 2.23 (no gambas3 donde aparentemente si pueden ser públicos los embbeded arrays....)

Alguien puede esclarecer un poco la situación según su experiencia o conocimiento?!?!

Perfil MP  
Objetivo: Re: Acerca De Array Embebidos (Embedded Arrays)
Citar:

Ahora bien... En uno de mis proyectos en gambas tengo clases que dentro tienen objects[] y strings[] y si que los puedo inicializar, puedo declararlos como public, los uso y los puedo acceder desde fuera del objeto y demás...


Cuando declarás Objects[] y Strings[] estás declarando arrays dinámicos que sí son objetos y por lo tanto deben inicializarse (NEW) o asignárseles una referencia a otro objeto array del mismo tipo. Éstos sí pueden ser PUBLIC.

Un array dinámico es un objeto y por tanto cuando se inicializa se reserva un espacio inicial en el heap (montículo) y por ello su cantidad de elementos puede crecer o disminuir bajo demanda.

Un array declarado local (DIM) se almacena en el stack (pila) y obviamente se destruye al concluir la ejecución de la rutina que lo contiene.

Un array embebido es un array estático, no es un objeto y se almacena en la memoria de datos del objeto: un array embebido se declara indicando sus dimensiones (PRIVATE $aEmbededArray [10,8] AS Integer). No recuerdo haber usado este último tipo de array, pero si la documentación dice que sólo pueden ser PRIVATE (y en consecuencia "no se pueden compartir") debe ser así.


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.6455s (PHP: -92% SQL: 192%)
Consultas SQL: 45 - Debug off - GZIP Activado