해시를 함수에 전달하는 올바른/멍청한 방법은 무엇입니까?zsh에서 매개 변수로 해시 패스 해시
나는 이런 종류의 공격을 받았지만 이것이 얼마나 깨끗한 지 또는 어떤 함정이 있는지 확실하지 않습니다.
typeset -A hash
hash=(a sometext b moretext)
foo hash
foo() {
typeset -A mhash
mhash=(${(Pkv)1})
}
P 플래그는 result (이 경우 $ 1이 매개 변수 이름을 가지고 있음)를 해석합니다. 키와 값만 가져 오는 결과가 나왔기 때문에 키와 값을 모두 얻으려면 "kv"를 사용했습니다.
올바른 방법입니까 아니면 다른 방법입니까? btw, 나는 실제 프로그램에서 배열과 해시를 전달하기 때문에 "$ *"또는 "$ @"를 사용하고 싶지 않다.