Problème avec l'instruction copy
Niconux24-Jul-2006/13:12:11+2:00
Bonjour,

je ne comprends pas apparement une des subtilité du langage rebol:
a: [ 1 2 3 ]
b: copy a
b/1: "one"
print b --> [ "one" 2 3 ]
print a --> [ 1 2 3 ]
Jusque là tout est normal.
Avec un ensemble de blocs, je n'arrive à obtenir le même résultat :
a: [[ 1 2 3 ]]
b: copy a
b/1/1: "one"
print b --> [[ "one" 2 3 ]]
print a --> [[ "one" 2 3 ]]
Quelqu'un pourrait-il m'aider à résoudre ce mystère ?
Darkblue24-Jul-2006/16:54:59+2:00
Il faut utiliser le rafinement deep de l'instruction copy :

a: [[ 1 2 3 ]]
b: copy/deep a
b/1/1: "one"
print b --> [[ "one" 2 3 ]]
print a --> [[ 1 2 3 ]]

le fait d'utiliser le mot copy te permet de reallouer un espace memoire ou est stocké la copy de ton bloc, cependant pour les sous-blocks c'est simplement une reference au sous-block initial qui est copié et non le sous-block
niconux25-Jul-2006/16:47:23+2:00
merci pour tes explications, mon problème est résolu
encore merci
bye

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2