只有我习惯写 if (true == file.exists()) 这样的代码吗?

2015-09-30 19:51:40 +08:00
 xiusedelang

我感觉这样代码看着有莫名的对称美感。虽然多打点字,但是看代码时逻辑更容易理解。
只有我这样觉得吗?

8094 次点击
所在节点    程序员
67 条回复
ekousp
2015-10-01 13:19:52 +08:00
这样写 code review 不会通过的哟。
chiu
2015-10-01 14:00:12 +08:00
@xmbaozi 一般把常量放在左边,这样在“==”误打成“=”的情况下,编译器会报错。
honeycomb
2015-10-01 14:17:53 +08:00
@chiu 这个习惯没坏处
chmlai
2015-10-01 15:29:27 +08:00
这种写法没任何好处.
搞不好还会出来 N 多变种:
```
if (true == file.exists())
if (true != file.exists())
if (false == file.exists())
if (false != file.exists())
```
hualuogeng
2015-10-01 16:43:02 +08:00
我只有在==的情况下才把常量写在左侧。
noli
2015-10-01 17:35:00 +08:00
这种情况 ( == 右边是中间变量的情况下)即使反过来写并且少打了一个等于号,绝大多数语言的编译器都是会 complain 的吧? 所以这么写完全没有意义。
pseudo
2015-10-01 19:03:21 +08:00
@angkec 谢谢原来是这个 OTL
echo1937
2015-10-01 22:59:30 +08:00
@pseudo "猪一只"啊,“朱逸之” 这取名外表看着非常大气有才学吧,实际就是个蠢主意。
abscon
2015-10-01 23:03:12 +08:00
如果真的是存在文件
--------
楼主你平时这样说话?
crazystory
2015-10-01 23:13:38 +08:00
@dorentus 合法的语法为何要警告。这不是多此一举。 就是需要这样写呢。
thxmem
2015-10-01 23:15:34 +08:00
记得有书推荐这种写法,不过看起来很别扭。
anjouslava
2015-10-02 00:16:20 +08:00
@crazystory 合法的语法也会警告,因为在条件判断的地方写赋值语句是明显的无意义错误,高级 IDE 设计的时候就考虑到了
legendlee
2015-10-02 01:45:56 +08:00
我的习惯是:
bool 类型和指针的判断不用==号,直接 if ( file.valid())和 if(ptr)。
其他类型的使用常量==变量的形式。
gladuo
2015-10-02 01:56:01 +08:00
这个逼装的已经不流行了
orzfly
2015-10-02 10:48:13 +08:00
@crazystory 我见过的一些 IDE / 编译器是你再套一层括号,比如 if ((result = someMagic())) 他就不给你警告了……
limuxy
2015-10-02 13:17:38 +08:00
到底对称在哪里……
nozama
2015-10-02 18:34:02 +08:00
我发现很多人自己根本不思考,书上说这样,就必须这样... 还有一种奇葩习惯是,任何指针使用前都加一句 if(ptr)…, 但是又忽略 else 的情况,结果虽然临时避免了 bug ,却隐藏了更多 bug
CRVV
2015-10-02 23:22:53 +08:00
@crazystory
建议自己把代码写出来用编译器编译一下再来说事
“合法的语法为何要警告”... 你是只写过 Go 么
警告就是在合法的语句里找不合适的地方

C 语言用 ‘ gcc -Wall ’ 编译,会对 if(a=1)给 Warning
adonishong
2015-10-03 11:54:40 +08:00
楼主自己没发现这个写法最大的好处?这个写法最大的好处是如果把 if (true == file.exists()){} 错写成 if (true = file.exists()){}的时候,编译器会报错,编译直接过不去;如果是 if (file.exists() == true){}少写一个等号,编译器不会出错,跑起来会有不定期的错误,并且不太好查。。。
adonishong
2015-10-03 11:56:56 +08:00
@lincanbin

re 。。。转到 php 之后,掉了几次坑,然后就习惯写===和!==了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224872

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX