Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Truco Para Funciones Que Deben De Devolver Varios Valores
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Truco Para Funciones Que Deben De Devolver Varios Valores 
 
Hola, os traigo un "truco" (por decirlo de alguna manera), por si necesitais que una función os devuelva varios valores.

El truco es simplemente usar el tipo "collection" como  retorno de la función.

Os dejo este ejemplo, donde podeis ver como se devuelve el valor de dos variables "pieza" y "fuerza", desde una función:

Public Sub Form_Open()
  
  Dim valores As Collection
  Dim pieza As String
  Dim fuerza As Integer
  
  valores = calculo()
  
  pieza = valores["pieza"]
  fuerza = valores["fuerza"]
  
  Print "El valor de pieza: " & pieza & "\n" & "El valor de fuerza: " & fuerza
  
End

Public Function calculo() As Collection
  
  Dim coleccion As New Collection
  
  coleccion.Add("torre", "pieza")
  coleccion.Add(3, "fuerza")
  
  Return coleccion
  
End
 


Saludos

Nota:
Otra forma que he usado, antes de "descubrir" el tipo collection, era crear una clase con varias propiedades y usar esta clase como objeto que retorno, pero me parece más "simple" el uso de collection.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truco Para Funciones Que Deben De Devolver Varios Valores 
 
A mí me gusta más devolver un variant. Si la función que has puesto falla al obtener el valor o el nombre de la pieza, ¿Qué devuelves? Con Variant puedes devolver null, false, la colección vacía e, incluso, el mensaje de error. Puedes retornar un Variant[] que contenga todos esos elementos, etc. etc. Mucho más flexible desde mi punto de vista.
La única, y nada desdeñable, ventaja de devolver una colección, tal como yo lo veo, es la claridad del código en la función que la llama... pero un variant puede contener una colección también.


Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Truco Para Funciones Que Deben De Devolver Varios Valores 
 
No olvidar que usar Variant tiene su coste.Naturalmente hay casos que es mejor, como este.

En este caso las piezas tienen un valor que están fijados al comenzar,¿no ?.
A menos que por error cuando se lo dimos, hubiésemos cometido algún error.

La idea de Julio no es para nada mala.Algo confusa al principio.
La pieza tiene un nombre y un valor.

Hay muchas formas de poder hacerlo.
Dos arrays. Cadenas y entero

Un array Variant. [Pieza,valor,otrapieza,valor...]

Se ve claramente la flexibilidad de la colección.En este caso recuerdas fácilmente el nombre, por que son pocas.

Ea, se acabo el recreo..

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Formulario Para Devolver Variables bies88 General 15 Viernes, 13 Junio 2014, 08:43 Ver último mensaje
jsbsan
No hay nuevos mensajes Truco Para Rellenar Un Impreso Usando Inks... jsbsan Aplicaciones/Fragmentos de Código 0 Jueves, 20 Noviembre 2014, 10:31 Ver último mensaje
jsbsan
No hay nuevos mensajes Retomando Enumerados. Una Variable Que Pue... Shell General 3 Martes, 18 Abril 2017, 22:22 Ver último mensaje
tincho
No hay nuevos mensajes Colección, Devolver Sus Valores O Devolve... Shell General 1 Jueves, 07 Diciembre 2017, 17:49 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron