ハッシュを関数に渡す正しい/慣用的な方法は何ですか?
私はこれを思いつきましたが、これがどれほどきれいか、または落とし穴があるかどうかはわかりません。
typeset -A hash
hash=(a sometext b moretext)
foo hash
foo() {
typeset -A mhash
mhash=( ${(Pkv)1} )
}
P フラグは結果を解釈します (この場合、$1 はパラメーター名を保持していると見なされます)。これはキーではなく値のみを取得する結果となったため、キーと値の両方を取得するために「kv」を追加しました。
これが正しい方法ですか、それとも別の方法がありますか。ところで、私は実際のプログラムで配列とハッシュを渡しているので、「$*」や「$@」は使いたくありません。