UPDATE如何創建一個空數組
下面的原始描述有許多錯誤; gawk lint不會抱怨用作RHS in
的未初始化數組。例如,以下示例不提供任何錯誤或警告。我並沒有刪除這個問題,因爲我接受的答案提供了使用split
以及空字符串創建空數組的良好建議。
BEGIN{
LINT = "fatal";
// print x; // LINT gives error if this is uncommented
thread = 0;
if (thread in threads_start) {
print "if";
} else {
print "not if";
}
}
原始的問題
很多我的awk腳本中有一個結構如下:
if (thread in threads_start) { // LINT warning here
printf("%s started at %d\n", threads[thread_start]));
} else {
printf("%s started at unknown\n");
}
隨着gawk --lint
導致
warning: reference to uninitialized variable `thread_start'
所以我在BEGIN塊中初始化如下。但是這看起來很糟糕。有沒有更優雅的方式來創建一個零元素數組?
BEGIN { LINT = 1; thread_start[0] = 0; delete thread_start[0]; }
不是我所知道的。 –