De retour de tableaux à partir de Procédures TCL

Je veux passer de tableau et tableau à partir d'une procédure, voici l'exemple de code que j'ai essayé. Mais obtenir certaines erreurs..

set a(0) "11"
set a(1) "10"
set a(2) "20"
set a(3) "30"
set a(4) "40"

proc deleten somet {
    upvar $somet myarr
    for { set i 1} { $i < [array size myarr]} { incr i} {
        set arr($i) $myarr($i)
    }
    return arr
}

array set some[array get [deleten a]]
parray some

lorsque j'exécute ce code j'obtiens l'erreur suivante erroné # args: doit être "ensemble arrayName liste". Je suis assez sûr que je ne veux pas utiliser la liste, comment puis-je définir le tableau retourné par le proc à un autre tableau???

Cela semble être une mauvaise chose à faire dans ce code. Ne serait-il pas plus simple d'utiliser array set some [array get a];unset some(0)?
En général, je suggère d'utiliser des noms descriptifs pour les variables et les procédures. Des noms comme deleten ou somet ne pas transmettre votre intention et le but.
Un pas en arrière et il semble que vous pouvez utiliser une liste au lieu d'un tableau pour votre besoin. Je dis cela parce que les indices sont des nombres entiers consécutifs. Gardez à l'esprit que dans Tcl, le liste structure de données est équivalent à array dans d'autres langages tels que le C ou le Java.

OriginalL'auteur user1270123 | 2012-03-18