En este ejemplo mediante recursividad se actualizara el contenido de una colección con otra colección.
En una colección tenemos una serie de aplicaciones y versiones
En la otra colección tenemos o bien aplicaciones nuevas con su versión que queremos añadir a nuestra
colección aplicaciones o actualizar las versiones de las aplicaciones que ya teníamos.
Public Sub Main()
Dim aplicaciones As Collection
Dim actualizaciones As Collection
aplicaciones = ["Editores": ["Pluma": 2.3], "Emuladores": ["Fuse Spectrum": 0.9, "Xroar": 1.0]]
actualizaciones = ["Editores": ["Pluma": 2.3, "Gedit": 1.5], "Emuladores": ["Fuse Spectrum": 1.0, "Xroar": 1.0, "PCSX": 0.8]]
actualizacolecrecursiv(aplicaciones, actualizaciones)
End
Public Sub actualizacolecrecursiv(dst As Variant, src As Variant)
Dim k As Variant
For Each k In src
If dst.Exist(src.key) And (TypeOf(src.key) = gb.Object) Then
actualizacolecrecursiv(dst[k.key], src[k.key])
Else
dst[src.key] = src[src.key]
Endif
Next
End
Dim aplicaciones As Collection
Dim actualizaciones As Collection
aplicaciones = ["Editores": ["Pluma": 2.3], "Emuladores": ["Fuse Spectrum": 0.9, "Xroar": 1.0]]
actualizaciones = ["Editores": ["Pluma": 2.3, "Gedit": 1.5], "Emuladores": ["Fuse Spectrum": 1.0, "Xroar": 1.0, "PCSX": 0.8]]
actualizacolecrecursiv(aplicaciones, actualizaciones)
End
Public Sub actualizacolecrecursiv(dst As Variant, src As Variant)
Dim k As Variant
For Each k In src
If dst.Exist(src.key) And (TypeOf(src.key) = gb.Object) Then
actualizacolecrecursiv(dst[k.key], src[k.key])
Else
dst[src.key] = src[src.key]
Endif
Next
End
Mostrando el contenido de la colección aplicaciones:
Ejemplo original de Python se puede encontrar en:
https://terminus.ignaciocano.com/20...ario-en-python/
Saludos