Awk数组与函数使用全解析
数组下标相关要点
- 使用数字作为数组下标
数组下标始终是字符串。当使用数值作为下标时,它会在用于下标操作之前转换为字符串。预定义变量CONVFMT的值会影响程序访问数组元素的方式。例如:
xyz = 12.153
data[xyz] = 1
CONVFMT = "%2.2f"
if (xyz in data)
printf "%s is in data\n", xyz
else
printf "%s is not in data\n", xyz
此代码会输出 12.15 is not in data 。因为最初 data[xyz] 使用默认的 CONVFMT 值将 xyz 转换为 "12.153" 作为下标,而后续检查时 CONVFMT 改变, xyz 转换为 "12.15" ,与之前的下标不同,导致检查失败。
整数始终会转换为对应的整数字符串,不受 CONVFMT 影响。八进制和十六进制常量会被内部转换为数字,其原始形式会被忽略,例如 array[17] 、 array[021] 和 array[0
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



