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 |