[英]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.