Memoize

BasicWerk   EC Support   Technique   Facebook  

20140924194306_zsh_hash_table

zsh_hash_table

 

zsh

 

連想配列・ハッシュテーブル

 
# 宣言が必要
% typeset -A h
 
# ベタ書きで値をセット
% h=(a 1 b 2 c 3)
 
# キーを指定して値を取り出す
% echo $h[a]
1
 
# キーを指定しないと値がずらっと出て来る
% echo $h
1 2 3
 
# キーだけを取り出したい場合は (k) 指定子を使う
% echo ${(k)h}
a b c
 
# キーと値のペアを追加・上書き
% h[d]=4
% echo $h[d]
4
% h[d]=100
% echo $h[d]
100
 
# この書き方でもOK
% h+=(e 5)
% echo $h[e]
5
% h+=(e 200)
% echo $h[e]
200
 
# 別のハッシュ変数に中身をコピー (一例)
% typeset -A h_copy
% for key in ${(k)h}
    do
        h_copy[$key]=$h[$key]
    done
 
% for key in ${(k)h_copy}
    do
        echo $key $h_copy[$key]
    done
a 1
b 2
c 3
d 100
e 200
 

 


© Shin Nakamura/BasicWerk 2014