以前,数字转换可以通过添加零 (+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
Run Code Online (Sandbox Code Playgroud)
但是,现在转换只发生在添加零和一元减号时:
$ 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
Run Code Online (Sandbox Code Playgroud)
有谁知道在哪里提到了这个变化或者为什么要这样做?
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.html