为什么等号被用作赋值操作符
在数学中 a=a+1
是不成立的,但在编程中这个表达式表示a赋值为a+1。这篇文章探讨了为什么现代大部分编程语言使用了 = 作为赋值操作符。tldr,历史原因。。。
- c 语言这么用的
- 以前有语言用
a := a + 1
表示赋值(ALGOL-60) - 在 ALGOL-60 到 CPL 到 APL 到 S 到 R 这条链的末端,R 语言选用了
<-
作为推荐的赋值操作符。 - BCPL 这门语言运行与 PDP-7, 引入了 ++, --,使用 = 作为初始,:= 作为赋值。
- 在 ALGOL-60 到 CPL 到 BCPL 到 B 再到 C 这条链的末端,C 语言选用了
=
作为赋值操作符。Tompson 想把初始和赋值合并,因为 = 更短,所以就用了它。不过这导致了相等判断有歧义,所以引入了 ==。
Since assignment is about twice as frequent as equality testing in typical programs, it’s appropriate that the operator be half as long. - Tompson
- 因为 C 的影响力,现代大部分编程语言使用了
=
。