一元加回归

Ste*_*nny 7 awk string gawk

以前,数字转换可以通过添加零 (+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

小智 6

这当然是无意的。我们(gawk维护者)将寻求修复它。

将来,如果将此类问题发送到 gawk 错误报告地址(bug-gawk@gnu.org,请参阅参考资料gawk --help),这将很有帮助,以便开发人员了解这些问题并修复它们。

  • 当您真的怀疑它可能是有意更改时,决定是否将某些内容发送到错误报告地址是很棘手的。您可能会争辩说,在这种情况下,它代表了文档中的一个错误,但希望尽量减少开发人员花在分类非错误上的时间是很自然的。 (2认同)