在awk中,我可以用循环清空一个数组,使其成为空数组,相当于删除它。
for (key in array) delete array[key];
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法?我可以完全删除一个数组,以便变量名可以重新用于标量吗?
Gil*_*il' 34
语法
delete array
Run Code Online (Sandbox Code Playgroud)
POSIX 中的当前版本中没有,但几乎所有现有实现(包括原始 awk、GNU、mawk 和 BusyBox)都支持它。它将在 POSIX 的未来版本中添加(请参阅缺陷 0000544)。
清除所有数组元素的另一种方法是依赖于split
删除所有现有元素,该方法既可移植又符合标准,并且是表达式而不是语句:
split("", array, ":")
Run Code Online (Sandbox Code Playgroud)
所有这些,包括delete array
在原始 awk、GNU awk 和 mawk(但不在 BusyBox awk)中将变量标记为数组变量。据我所知,一旦将变量用作数组,就无法将其用作标量变量。
归档时间: |
|
查看次数: |
16128 次 |
最近记录: |