瞎扯淡 "if 1==a" 和 "if a==1" 的区别

x290431695 · 2013年03月13日 · 最后由 jyootai 回复于 2016年01月20日 · 3714 次阅读

今天去团 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……呵呵……

需要 登录 后方可回复, 如果你还没有账号请 注册新账号