awk - 为什么访问 awk 数组的不存在元素会创建此元素?
问题描述
我刚刚花了很多时间在一段 awk 代码上,我不明白它的行为:如果一个数组不包含一个元素,为什么试图访问这个元素会创建它(带有一个空值)?
echo "1" | awk '{a[$1]=12} END{for (i in a) {print i,a[i]}; print a[2]; for (i in a) {print i,a[i]};}'
返回
1 12
1 12
2
元素“2”已在 a[] 中创建,值为“”。这是否意味着您必须在访问之前测试是否存在任何元素,否则会冒更改数组大小的风险。这似乎是一种相当危险的行为。(我正在使用 gawk。)
感谢您的任何见解。
解决方案
推荐阅读
- flutter - 如何在 Flutter 小部件测试中组合两个 Finder?
- javascript - 验证鼠标位置是否在 HTML5 Canvas 中的旋转矩形内
- r - 如何使用替代函数来加快对 data.frame 的逐行计算以应用族?
- mysql - 如何用外部选择提供 sql 子选择?
- python - 使用 ElementTree 库解析 KML/XML
- c# - Audit.NET 检测到外键属性“AuditQuantitativeResearch.AuditId”已更改
- angular - 测试组件的 @input()
- web - Jamstack 与网页的 CDN 缓存有何不同
- javascript - 生成 NFT 上的匹配层 - solidity/js/react/nodejs
- python-3.x - ImportError:导入 QtWebEngineWidgets 时 DLL 加载失败