赋值运算符
赋值是编程语言基本操作,即便如此,赋值运算符也并不唯一。大部分编程语言”=”是赋值,”==”是相等。一个常见的疑问是,赋值运算符”=”和数学的相等是一个符号,这会产生误解吗?
=和==
在数学或者计算机科学中,判断相等相比于赋值,个数少的可怜。按照编码理论,出现次数越多的符号用最少的字符编码更有利。用”=”当做赋值,”==”相等也是有道理的。
- C/C++可能误用赋值为逻辑判等,但编译器可能不会理会,因为赋值的结果为整型依然被当做合法的逻辑值。这很灵活,字符串结尾判断代码相当简洁,但可能被误用。
- Java作为一门摆脱C++显式指针的编程语言,可能的误用,编译器会直接报警。
不同的赋值运算符
- 大部分主流语言支持”=”作为赋值,也支持复合赋值运算符(如+=, -=)
- C/C++/Python/C#/JavaScript/Ruby/Swift/Shell均支持。
- C#复合赋值与C语言有差异,它是调用相应方法实现:a += b相当于a = a.Add(b).
- 另外一种赋值运算符:=,最早起源于Algol语言,Fortran在使用。
赋值运算符前后的空格
- 编译型语言一般可以忽略空白字符,会忽略赋值运算符左右的空格。
- Shell语言用于命令控制,赋值左右不能随便加空格。
连续赋值
- C语言支持形如 i = j = k = 0, 简化了多个变量初始化。主流编程语言均支持,如C/C++/Java/C#/Python/Ruby等。
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!