Re: [問題] 新手發問 "!!"的意思
※ 引述《yauhh (喲)》之銘言:
[43]
: 那樣子叫做好維護嗎? 相較來看,像本文這種
: !!T1 + 2 * !! T2 + 4 * !! Carry ===> int
: 程式短小,值域明確,只差語法上面比較不好讀的這種情況,表面上看起來不好維護,
: 實際上如果這一段程式有算錯,要修改時,UnitTest自動測試程式做下去,各種測試資料
: 刷個幾次,如果正確通過就完成,維護的時間可能短少很多.
: 本人是很懼怕那種看到程式稍微難讀就該該叫的合作者,遇到那種人,程式難維護或
: 容易維護都沒關係,最麻煩的就是程式寫複雜一點點就吵不完. 溝通上問題比較麻煩.
: (說穿了數學差就承認嘛,嫌程式複雜是哪一招...)
: 抱歉一點點題外的牢騷.
不是覺得這種精簡寫法一定有錯,但同樣做法,真的要寫得那麼
非直覺嗎?為什麼不可以寫成:
int t = 0;
if (T1) t |= 1;
if (T2) t |= 2; // 或寫成 t |= (1<<1);
if (Carry) t |= 4; // t |= (1 << 2)
switch (t) {
//..
}
再不然,寫成
int t = (T1? 1 : 0) | (T2 ? 2 : 0) | (Carry ? 4 : 0);
(以上 bitwise OR 可改用 +,看你自己喜好)
這樣單從 code 表面上就看得出是根據 T1, T2, Carry 來 turn-on
各個 bit。除非真的程式慢得連這一點點 performance 都要壓搾,
不然至少對我來說,上面的寫法比 !!T1 + 2 * !! T2 + 4 * !! Carry
看起來合理得多了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.19.47.36
※ 編輯: adrianshum 來自: 223.19.47.36 (03/12 23:43)
→
03/13 11:25, , 1F
03/13 11:25, 1F
→
03/13 12:20, , 2F
03/13 12:20, 2F
→
03/13 12:20, , 3F
03/13 12:20, 3F
→
03/13 15:05, , 4F
03/13 15:05, 4F
推
03/14 21:50, , 5F
03/14 21:50, 5F
推
03/15 01:04, , 6F
03/15 01:04, 6F
推
03/21 17:43, , 7F
03/21 17:43, 7F
推
03/21 17:53, , 8F
03/21 17:53, 8F
→
03/22 01:29, , 9F
03/22 01:29, 9F
→
03/22 01:30, , 10F
03/22 01:30, 10F
討論串 (同標題文章)