Estaba haciendo un ejercicio con Python y los diccionarios. Este lenguaje es capaz de mostrarte el valor directamente de una colección,
una lista ( similar a un array ) sin un bucle, pero en gambas es necesario disponer de un bucle para mostrarlo.
Este ejercicio se podría haber hecho mejor con una estructura o una clase, incluso un registro.
Tenemos los datos de una persona, como pueden ser el nombre completo, su nick, sus hobbies.
Y queremos mostrarlos.
He usado colección de colección e incluso una colección cuyos valores son un array.
Public Sub Main()
Dim persona As New Collection
persona = ["NombreCompleto": ["Apellidos": "Quijano", "Nombre": "Alonso"], "Nick": ["Don Quijote"], "Hobby": ["Caballero Andante", "Lector de obras de caballerías"]]
MostrarColeccion(persona)
End
Public Sub MostrarColeccion(aCol As Collection)
Dim tipo As Variant
Dim dato As String
Dim indice As Integer
For Each tipo In aCol
If tipo Is Collection Then
For Each dato In tipo
Print tipo.key & ": " & dato
Next
Else If tipo Is Array Then
For indice = 0 To tipo.Max
Print aCol.Key & ": " & tipo[indice]
Next
Endif
Next
End
Dim persona As New Collection
persona = ["NombreCompleto": ["Apellidos": "Quijano", "Nombre": "Alonso"], "Nick": ["Don Quijote"], "Hobby": ["Caballero Andante", "Lector de obras de caballerías"]]
MostrarColeccion(persona)
End
Public Sub MostrarColeccion(aCol As Collection)
Dim tipo As Variant
Dim dato As String
Dim indice As Integer
For Each tipo In aCol
If tipo Is Collection Then
For Each dato In tipo
Print tipo.key & ": " & dato
Next
Else If tipo Is Array Then
For indice = 0 To tipo.Max
Print aCol.Key & ": " & tipo[indice]
Next
Endif
Next
End
Salida:
Citar:
No he podido usar constantes de tipos a menos que hubiera usado el tipo objeto.
Tampoco podemos hacer:
Dando como error "String inesperado".
En ese caso se debe usar:
Saludos