Fra*_* Yu 5 zsh associative-array
在 Bash(4 或更高版本)中,如果我有一个关联数组dict,我可以设置它的值,dict[apple count]=1并且我可以使用${dict[apple count]}. Zsh 是否允许键名中有空格?dict[apple count]=1在 Zsh 中不起作用,所以我猜 Zsh 对此有不同的语法。dict["apple count"]=1不做我想做的事;它不是apple count用作键,而是使用"apple count"引号作为键的一部分。
一种(丑陋的)解决方法是使用语法“将元素附加到普通数组”,例如
dict+=('apple count' 1)
Run Code Online (Sandbox Code Playgroud)
Zsh 将维护关联数组的属性(只要您将其声明为 1),因此如果dict['apple count']存在,它将更新该值。自 Zsh 5.5 以来,一种不那么丑陋的方式是:
dict+=(['apple count']=1 ['orange count']=3)
Run Code Online (Sandbox Code Playgroud)
Zsh 允许任意字符串作为键。问题出在解析器上。
要设置任意键,可以使用变量。
typeset -A dict
key='apple count'; dict[$key]=1
key=']'; dict[$key]=2
key=''; dict[$key]=3
printf %s\\n "${(k@)dict}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |