2018/04/09 にzsh 5.5がリリースされました。
リリース後しばらくしてRelease Notesに変更内容が掲載されたので確認してみたら、配列・連想配列で新たなシンタックスが使えるようになっていて、それが結構実用的だったので紹介してみようと思います。
配列
基本操作
以下の記事で配列の操作は分かりやすく解説されているのですが、一旦基本をおさらい。
参考: zsh の配列操作の基本から応用まで
> local -a array=(first second third)
> echo $array
first second third
> echo $array[2]
second
> array[4]=fourth
> echo $array
first second third fourth
> array+=fifth
> echo $array
first second third fourth fifth
> echo $array[5]
fifth
zsh 5.5
で新しく追加されたシンタックスは以下。
分かりやすくするために前バージョンの5.4.2
の動きも掲載します。
zsh 5.5
> local -a array=([3]=third [2]=second [1]=first)
> echo $array
first second third
> echo $array[3]
third
-
zsh 5.4.2
(比較用)
> local -a array=([3]=third [2]=second [1]=first)
> echo $array
[3]=third [2]=second [1]=first
連想配列
基本操作
こちらも一旦基本をおさらい。
参考: zshの連想配列の使い方まとめ
> local -A associative_array=(key_1 val_1 key_2 val_2 key_3 val_3)
> echo $associative_array
val_1 val_2 val_3
> echo $associative_array[key_3]
val_3
> associative_array[key_2]=new_val_2
> echo $associative_array[key_2]
new_val_2
> echo ${(k)associative_array}
key_1 key_2 key_3
> echo ${(kv)associative_array}
key_1 val_1 key_2 new_val_2 key_3 val_3
zsh 5.5
で新しく追加されたシンタックスは以下。
zsh 5.5
> local -A associative_array=([key_1]=val_1 [key_2]=val_2 [key_3]=val_3)
> echo $associative_array
val_1 val_2 val_3
> echo $associative_array[key_3]
val_3
-
zsh 5.4.2
(比較用)
> local -A associative_array=([key_1]=val_1 [key_2]=val_2 [key_3]=val_3)
zsh: bad set of key/value pairs for associative array
まとめ
特に連想配列については前バージョンまでのシンタックスは少し分かりづらかったですが、zsh 5.5
からは直感的に理解できるようになっていて良いです。
今後もこういう便利な機能が追加されていく事に期待。