今天去团 800 面试,笔试有一个题: "if 1==a" 和 "if a==1" 的区别 当时百思不得其解,完后坐车回家,在上公车的一刹那,突然想到了”==”操作符在 ruby 中是可以重载的!"if 1==a"调用的是 "1" 的“==”,而 "if a==1" 调用的是 "a" 的“==”。 还是 java 思维没转变过来啊!T_T
1==a 可以避免误写为=
多数时候只是为了避免误写为=
@chenge @kgen 在 c, java 中避免写错是对的,但是在 ruby 中就不是这么简单了
#1 楼 @chenge 已经没必要倒过来了,现在所有的语言写 if (a = 1) 都会警告的
who the heck is going to redefine ==
==
想起来了就告诉他们吧……
String=='1' String==='1'
#2 楼 @kgen 将 rvalue 放在判断的左边防止误赋值这个技巧,确实过时了。
#3 楼 @x290431695 如果你的同事重载==,你一定会讨厌他的,所以……
有意思
这是正确答案嘛?
假如你还在思考这个问题,说明你用的语言弱爆了...
团 800……呵呵……