簡體   English   中英

Gawk中的異常數組訂閱

[英]Unusual Array Subscription in Gawk

我試圖在gawk中尋找特定類型的數組訂閱的解釋:

arr[tog = ! tog, 0] = i

但我似乎找不到適合Google的搜索字詞。 可以在以下位置找到我獲得該行的完整代碼: http : //lawker.googlecode.com/svn/fridge/lib/awk/levenshtein.awk

有人可以告訴我那是什么嗎? 它是否將布爾標志tog分配給它的逆,並將賦值的結果用作數組索引?

方括號中的內容是在算術上下文中評估的(不知道在何處記錄),因此這將反轉變量tog的布爾值,然后設置 a[0]="i"而不考慮tog的值:

 
 
 
  
  $ tog=0 $ arr[tog = ! tog, 0]=i $ echo $tog; echo "${!arr[@]}" 1 0 $ arr[tog = ! tog, 0]=i $ echo $tog; echo "${!arr[@]}" 0 0
 
  

因此,僅存在數組索引0。

哇,那是完全錯誤的。 我沒有看到這是一個令人毛骨悚然的問題。

gawk實際上不能具有多維數組,但是它可以使用逗號分隔的鍵來偽造它們。 使用SUBSEP變量將逗號分隔的元素連接為單個字符串:

after toggling:
1
arr[1:0]=5
after toggling:
0
arr[1:0]=5
arr[0:0]=10
 after toggling: 1 arr[1:0]=5 after toggling: 0 arr[1:0]=5 arr[0:0]=10 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM