稍复杂的三目运算该怎么写?

2012-12-16 22:57:19 +08:00
 yulanggong
http://gist.github.com/4308003
5677 次点击
所在节点    程序员
13 条回复
qiao
2012-12-16 23:12:05 +08:00
这种情况就不要用三目运算符了,用 if else 的话可读性会好些。
wwwjfy
2012-12-16 23:20:22 +08:00
非得这么写的话,加几个括号更清楚
chone
2012-12-17 00:00:45 +08:00
用if else语句代替,这样写实在没有可读性。
Rabbit52
2012-12-17 00:05:20 +08:00
I think so
Mutoo
2012-12-17 00:12:05 +08:00
可以试试“表驱动法”
比这复杂得多的都可以搞定。

http://www.cnblogs.com/ydong/articles/372742.html
luin
2012-12-17 00:15:59 +08:00
大多数情况下都不要嵌套三目运算
banxi1988
2012-12-17 01:29:29 +08:00
我写不出复杂的三目运算符。如果需要写,那肯定需要重构了。
为什么不引入解释性的变量 呢?
如:
boolean gt2 = num > 2?true:false;
boolean lt5 = num < 5?true:false;
boolean between2_5 = gt2 && lt5;
等等。
yulanggong
2012-12-17 08:32:23 +08:00
我觉的第一种和第二种类似 if else,而第三种类似 switch case。我更喜欢第一种,?相当于后置if ,:相当于 else,缩进能表明嵌套关系。
yulanggong
2012-12-17 08:44:31 +08:00
在根据条件不同给变量赋不同的值时三目运算挺直观的。
holmesabc
2012-12-17 09:07:51 +08:00
加几个括号就OK了
chuangbo
2012-12-17 13:23:44 +08:00
我觉得这种情况用 if else 会好一些。即使结构一样,if 感观上也比较简单。最好是第一眼就能看懂,不用思考。不然一个星期以后再回来看,估计就要琢磨一阵了。
BOYPT
2012-12-17 13:27:19 +08:00
果然python去掉?:运算符是明智的,改成if else
yulanggong
2012-12-18 08:24:19 +08:00
发现好多人说三目运算可读性差,如果把问号读做 if that is true,把冒号读做 else,可读性也不错。可能是我已经习惯了,感觉只要嵌套关系清楚,三目运算也可以条理清晰,而且少敲好多的字符。既然大家都说可读性差,以后就要少用了。

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

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

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

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

© 2021 V2EX