如果我有一個需要將數組返回給調用者的過程,那麼執行此操作的最佳方法是什麼?Tcl v8.4有一個proc返回數組的最佳方式是什麼?
我下面的代碼不使用Tcl因無法美元的數組變量工作:
proc mine {} {
array set foo { red 1 blue 2 green 3 }
$foo
}
tcl> set foo [mine]
Error: can't read "foo": variable is array
或者這不起作用或者:
proc mine {} {
array set foo { red 1 blue 2 green 3 }
array get foo
}
tcl> set foo [mine]
tcl> puts $foo(blue)
Error: can't read "foo(blue)": variable isn't array
這給我留下了很可能效率低下:
proc mine {} {
array set foo { red 1 blue 2 green 3 }
array get foo
}
tcl> array set foo [mine]
2
或者模糊不清:
proc mine {varName} {
upvar $varName localVar
array set localVar { red 1 blue 2 green 3 }
}
tcl>unset foo
tcl>mine foo
tcl>puts $foo(blue)
2
有沒有更好的方法來做到這一點,或者如果沒有,最有效的方法是什麼?