8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zsh 5.5で追加された配列・連想配列の新しいシンタックス

Last updated at Posted at 2018-04-13

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からは直感的に理解できるようになっていて良いです。

今後もこういう便利な機能が追加されていく事に期待。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?