作者Killercat (杀人猫™)
看板MacDev
标题Re: [问题] 一个写code时的小技巧名称请教
时间Mon May 27 10:18:10 2013
※ 引述《kiii210 (Johnny.T)》之铭言:
: 之前在找sample code常常会看到这样的写法
: int i;
: int count;
: i = (count==0) ? 1 : 2;
: 如此一来便能代替
: if (count==0) {
: i = 1;
: } else {
: i = 2;
: }
: 省下很多空间
: 不过我却一直查不到这个用法的名称叫做什麽XD
: 有人知道吗?
: 另外这只有限Obj-C才有吗?还是其他语言也有类似用法
: 感恩
三元运算子滥用会造成很大的阅读上的困难 比方说
max = (a > b) ? (a > c) ? a : (b > c) ? b : c; (随手写的没验证 不过应该没错)
这东西谁看得懂....(可是我常常这样写(遮脸))
这东西主要是用在一些if-else没办法写的地方 比方说
NSLog(@"%@", [a getInfo] == nil ? @"No Info!" : @"Have Info!");
这也当然不是完全不能if-else
只是用这三元运算子会简单好懂很多
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.124.251.135
※ 编辑: Killercat 来自: 59.124.251.135 (05/27 10:18)
1F:→ nobody1:max = (a > b) ? (a > c) ? a : (b > c) ? b : c 错了 05/27 11:45
2F:→ nobody1:多加几个括号会比较好读吧 05/27 11:45
3F:推 kiii210:感恩 有多学了一课 05/27 11:58
4F:推 chchwy:同意 有些小地方三元运算子比if-else好用许多 05/29 13:44