FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Retonar arreglo dinamico en funcion
Bueno estaba mirando algo de poo en pascal y queria crear una funcion que me retornara
un arreglo intente poner la funcion y de retorno algo asi function mifuncion:array of integer; begin end; pero me daba error asi que cheque dos posible soluciones una declarar un nuevo tipo que fuera de array of integer ejemplo type TIntegerArray:array of integer; function mfuncion:TintegerArray; begin end; y la otra solucion seria usar el Tarray<integer> como tipo de retorno la verdad me gusto mas la segunda opcion pero no se si estoy haciendo una buena implementacion ya que este Tarray<> tiene una serie funciones mas avanzadas este codigo hice en delphi
entonces quiseira saber si es correcto como lo estoy haciendo espero sus respuestas saludos... |
#2
|
||||
|
||||
Bueno, en principio, tu codigo funciona... aunque de acuerdo a o que hablaste, creo que omitiste la definición: <Integer>
Por otro lado... quisiera saber cual es el objetivo de tu clase tMetodo.. y cual es la necesidad que tienes... pues tengo algunas dudas sobre la forma como implementas, pero eso depende de tu necesidad. Podrias por ejemplo, no utilizar TArray<Integer>, sino TList<T>...
Es una lista dinnámica con la que te evitas el SetLength... y puedes utilizar metodos como Add, Insert, Delete, sort.... Pero claro está eso depende de tu necesidad... Con Generics vienen predefindas unas estructuras interesantes para trabajar Pilas, Colas, Estructuras clave/valor (diccionarios), entre otras. TObjectList TStack TQueue TDictionary en general, lo que quiero decir es que hablar de array dinámicos hoy dia no es muy común... saludo |
#3
|
||||
|
||||
Es cierto
la verdad tienes razon en lo Tarray<integer>
pero lo raro que yo en mi codigo si lo puse asi: Tarray<integer> no se si al momento de publicarlo se habra eliminado no lo se, ademas que que en un Tarray si no especificas de que tipo es te generar un error, inclusive si lo ocuparas con una variable de tipo variant y el otro punto de cual era el objetivo, pues no existe alguno solo conocer en mas profunidad como funciona el lenguaje ya que claro en esto tiempo seria mas optimo utilizar listas, pilas, colas etc. pero solo seria probar si el retorno de la funcion seria lo mas ideal. |
#4
|
||||
|
||||
Hola.
Solo una aclaración sobre la devolución de arreglos dinámicos. Como está escrita la funcion ObtenerArreglo en el mensaje de BDWONG, no se obtendría una copia del arreglo sino un apuntador al arreglo como se puede comprobar con este ejemplo:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Hola chicos.
Sólo agregar que las matrices (por muchos años les llamé arreglos) dinámicas, como también las cadenas de caracteres, utilizan contadores de referencias, por lo cual se copian automáticamente si y sólo si "algo" necesita una copia particular. Lo anterior ocurre, por ejemplo, cuando se agregan nuevos elementos a la matriz: sólo la variable usada en tal operación adquiere una copia, modificada, del contenido. Eso hace de las matrices dinámicas una herramienta muy eficiente para el manejo colectivo de datos. Su uso está vigente en innumerables casos, y aunque existen clases más especializadas, no son nada obsoletas. Saludos cordiales. Al González. P.D. Qué difícil es redactar desde un teléfono móvil. |
#6
|
||||
|
||||
Cita:
Quizá fué mala elección usar el modo consola para representar el ejemplo dando así la impresión de que su uso es obsoleto. Pero es que me pareció mas claro de visualizar de ese modo, a ver si puedo enmendarlo un poco ... Y se le puede ir agregando las funcionalidades que se nos vayan ocurriendo. De echo yo no me animo Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Despreocúpate ecfisa, tu código siempre me ha parecido enriquecedor. Fue gatosoft quien al parecer apuntaba lo de la obsolescencia (quizá me equivoco).
|
#8
|
||||
|
||||
Asignación de matrices dinámicas
Me he permitido elaborar un par de ejemplos sobre la asignación de matrices dinámicas (dynamic arrays). Van a perdonar las posibles faltas ortográficas, pero es que mi Word se trabó.
Una aclaración que considero importante: A diferencia de las cadenas de caracteres, las matrices dinámicas no emplean el mecanismo de "copiar al escribir", por lo cual es necesario asegurarnos de tener una copia verdadera antes de hacer algo como: Las funciones SetLength y Copy garantizan lo anterior. Un saludo. Al González. |
#9
|
||||
|
||||
BDWONG,
Cita:
Revisa este código: El código anterior en Delphi XE7 sobre Windows 8.1 Professional x32, ejemplifica el uso de arreglos dinámicos en Delphi XE7, según se muestra en la siguiente imagen: Espero sea útil Nelson. Última edición por nlsgarcia fecha: 07-10-2014 a las 03:01:34. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
funcion que me regresa un arreglo | julyus | OOP | 14 | 27-08-2010 23:49:01 |
Funcion Array Dinamico??? | franss | Varios | 4 | 28-08-2008 21:33:23 |
Arreglo de Registros, con arreglos de Registros(Dinamico) | PiornoCKA&G | Varios | 4 | 05-01-2007 08:53:30 |
arreglo dinamico | prubtest | C++ Builder | 1 | 31-07-2004 23:54:45 |
Como devuelvo un Arreglo en Función | Prophoenix | Varios | 1 | 30-05-2003 19:40:58 |
|