以前,可以通过添加零 (+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
这当然是无意的。我们(gawk维护者)将寻求修复它。
将来,如果将此类问题发送到 gawk 错误报告地址(
[email protected]
,请参阅gawk --help
),将会有很大帮助,以便开发人员了解这些问题并修复它们。