2013-02-17 44 views
2

Zsh有兩個很好的功能,local關鍵字和數組概念。zsh中的本地數組

local my_var # Declare variable local to this function 

arr=(1 2 3) # Create array with 3 elements 
arr+=4 # Add a fourth element 

分別。

組合它們的想法(local arr=())是不可抗拒的,但似乎只是給出了一個錯誤?可能嗎?

回答

6

至少在1999的情況是,它是不可能在同一行,但這項工作的周邊存在:

local arr 
arr=() 

學分應該去彼得·斯蒂芬森回答這個當時的情況。

4

當然,現在你可以這樣做:

local -a arr 
+0

「現在」?這是一件新事物嗎? – Tarrasch 2014-09-22 11:41:53

+0

可能不是,但我不知道它是在什麼時候(如果曾經)首次推出。 AFAIK'local'一直是'typeset'的封裝,所以我想只要數組已經在'zsh中,它就是合法的。 – PythonNut 2014-09-22 20:05:07

+2

我覺得這個答案是不正確的。 'local -a arr =(1 2 3)'仍然會產生'zsh:未知的文件屬性'。請記住,我想將一個* new *和* local *變量設置爲數組值。 – Tarrasch 2014-09-23 08:06:21