sábado, noviembre 21, 2009

Harbour VS xHarbour, Las diferencias verdaderas (Parte 6)

Paso de elementos de arreglos (arrays) y hashes por referencia

Harbour soporta el paso de elementos de arreglos y hashes por referencia, por ejemplo:
         local aVal := { "abc", "klm", "xyz" }, ;
hVal := { "qwe"=>"123", "asd"=>"456", "zxc"=>"789" }
? aVal[1], aVal[2], aVal[3], hVal["qwe"], hVal["asd"], hVal["zxc"]
p( @aVal[2], @hVal["asd"] )
? aVal[1], aVal[2], aVal[3], hVal["qwe"], hVal["asd"], hVal["zxc"]

proc p( p1, p2 )
p1 := '[1]'
p2 := '[2]'

Compilado con Harbour el código anterior muestra:
      abc klm xyz 123 456 789
abc [1] xyz 123 [2] 789

En xHarbour solo el paso de los elementos del arreglo por referencia funciona pero no funciona pasar los elementos de un hash por referencia y esto no genera errores ni en tiempo de compilación ni en tiempo de ejecución, de tal forma que el codigo anterior puede ser compilado y ejecutado, pero daría estos resultados:
      abc klm xyz 123 456 789
abc [1] xyz 123 456 789

Continuará.....

No hay comentarios.: