將散列傳遞給函數的正確/慣用方式是什麼?在zsh傳遞散列作爲參數
我有這種打擊,但我不知道這是多麼乾淨,或者如果有任何陷阱。
typeset -A hash
hash=(a sometext b moretext)
foo hash
foo() {
typeset -A mhash
mhash=(${(Pkv)1})
}
P標誌解釋結果(在本例中爲$ 1作爲參數名稱)。由於這導致只獲取值而不是密鑰,所以我將其鎖定在「kv」上以獲取密鑰和值。
這是正確的方式,還是有另一種方式。順便說一句,因爲我傳遞一個數組和哈希在我的實際程序中,我不想使用「$ *」或「$ @」