以前,数字转换可以通过加零 (+0)、一元加 (+) 或一元减 (-) 来触发:
$ gawk --version
GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.6-p1, GNU MP 6.1.2)
$ gawk 'BEGIN {print "01" + 0}'
1
$ gawk 'BEGIN {print +"01"}'
1
$ gawk 'BEGIN {print -"01"}'
-1
但是,现在转换仅在添加零和一元减号时发生:
$ gawk --version
GNU Awk 4.2.0, API: 2.0 (GNU MPFR 3.1.6-p1, GNU MP 6.1.2)
$ gawk 'BEGIN {print "01" + 0}'
1
$ gawk 'BEGIN {print +"01"}'
01
$ gawk 'BEGIN {print -"01"}'
-1
有谁知道哪里提到了这个改变或者为什么要这样做?
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html
答案1
这当然是无意的。我们(呆呆地维护者)将寻求修复它。
将来,如果将此类问题发送到 gawk 错误报告地址([email protected]
参见 参考资料gawk --help
),将会有很大帮助,以便开发人员了解这些问题并修复它们。