将哈希传递给函数的正确/惯用方式是什么?
我对此有所了解,但不确定这有多干净或是否有任何陷阱。
typeset -A hash
hash=(a sometext b moretext)
foo hash
foo() {
typeset -A mhash
mhash=( ${(Pkv)1} )
}
P 标志解释结果(在这种情况下 $1 为持有参数名称)。由于这导致只获取值而不是键,因此我使用“kv”来获取键和值。
这是正确的方法,还是有其他方法。顺便说一句,因为我在我的实际程序中传递了一个数组和一个哈希,我不想使用“$*”或“$@”