Re: [閒聊] 真的有扯到...

看板Soft_Job作者 (.)時間12年前 (2012/03/29 00:05), 編輯推噓0(0023)
留言23則, 6人參與, 最新討論串9/13 (看更多)
: → atst2:我怎麼覺得你同事不是把| 和|| 搞錯,而是把|| 和&&搞反了? 03/28 22:38 : → atst2:話說回來,Java spec.有指明bitwise operator是有交換性的 03/28 22:40 : → atst2:但倒是沒有明確指出,當|的兩邊都是boolean時,能否套用 03/28 22:42 : → atst2:short-circuit evaluation... 03/28 22:43 : → erspicu:看編譯器 實作特性 這就by case了 03/28 22:44 : → yauhh:不要沒事就講看編譯器實作特性,一個語意沒那麼難定義. 03/28 23:26 : → yauhh:尤其是邏輯公設,幾乎不會是被扯到語言未定義這個部份. 03/28 23:27 : → qrtt1:spec 明明就寫了布林邏輯啊>"< bitwise 是整數的事. 03/28 23:32 : → qrtt1:如同樓上說的,根本沒必要看 compiler 實作 03/28 23:32 我覺得學習語言真的從稍微低階一點的學習 在某些方面會學習的比較多 Java比較高階 把很多東西包起來 有些細節部分 有些人根本不知道所以然來 這些人就是會覺得探討compiler 實作行為根本沒必要的人 當 | 兩邊都是boolean時 而且也只是要求取boolean結果時 能否套用short-circuit evaluation 就結果來說 答案是可以的 跟 || 一樣 因為並不影響結果 前提是 若前條件為 true(1) 可以省略後條件 反之 前條件為 true(0) 則還是得看後條件 但是看編譯器高興 基本上如果spec沒有特別指出實作細節規範 怎麼做看作的人高興 重點是結果不要錯就好 如果單以 boolean 來說就是這樣 但是boolean是特例 因為boolean在很多語言的底層 我猜可能通常是一個byte的0或是1 也許今天作者高興 想加速 直接在 兩個boolean的情況下 使用short-circuit evaluation 也未嘗不可 到底是誰見樹不見林? 或許吧...反正也很少人用Java去處理低階的事情 見樹不見林也無所謂 如果是內嵌系統領域的人 見樹不見林 大概就別混了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.5.247

03/29 00:09, , 1F
講了半天就是誰高興就是了?
03/29 00:09, 1F

03/29 00:10, , 2F
你如果有看過某些討論串 就不會覺得訝異了
03/29 00:10, 2F

03/29 00:18, , 3F
Java是跨平台的語言, 其實在Java language spec. 裡, 雖然
03/29 00:18, 3F

03/29 00:19, , 4F
你並不會看到short-cut這個關鍵字, 但卻己經指明對||的處
03/29 00:19, 4F

03/29 00:19, , 5F
理, 使用short-cut evaluation, 否則連跨compiler都不行了
03/29 00:19, 5F

03/29 00:19, , 6F
如何跨平台呢? 你可以永遠當做它存在...
03/29 00:19, 6F

03/29 00:23, , 7F
上面的人是在 | 左右為boolean的情況
03/29 00:23, 7F

03/29 00:36, , 8F
其實spec裡也有指明其運算, 其中未包含short-cut evaluati
03/29 00:36, 8F

03/29 00:36, , 9F
不過我倒是今天才注意到這個用法...
03/29 00:36, 9F

03/29 00:47, , 10F
夭壽...這篇到底在說啥...完全看無...
03/29 00:47, 10F

03/29 00:51, , 11F
整理一下, ||必有SCE, |必無SCE, SCE == short cut evalua
03/29 00:51, 11F

03/29 09:16, , 12F
結果第一個回你的人引用的教科書和你同事故說的一樣阿
03/29 09:16, 12F

03/29 09:21, , 13F
我翻到另外一本作者寫得(Kathy sierra),內容跟你同事說的
03/29 09:21, 13F

03/29 09:24, , 14F
thinking in java也提到一樣的東西
03/29 09:24, 14F

03/29 09:54, , 15F
這間中差異很大好不好... 完全是對與不對的事情
03/29 09:54, 15F

03/29 09:56, , 16F
大哥 #1FSmlb2C 這篇看一下吧
03/29 09:56, 16F
※ 編輯: erspicu 來自: 60.248.56.181 (03/29 10:44)

03/29 13:13, , 17F
我是絕得,原PO可以取決於跟這兩位資深前輩的關係好不好
03/29 13:13, 17F

03/29 13:13, , 18F
來決定要不要幫他們導回"正途" XD
03/29 13:13, 18F

03/29 13:15, , 19F
不然說實在的,一直批評人家這種基礎知識都不會,有點
03/29 13:15, 19F

03/29 13:15, , 20F
沒必要
03/29 13:15, 20F

03/29 18:25, , 21F
其實應該只是一時口誤或腦誤, 例如想其它問題想到一半,
03/29 18:25, 21F

03/29 18:25, , 22F
結果同事來問問題. 硬是從腦中搜索了一下答案回答. 不然
03/29 18:25, 22F

03/29 18:26, , 23F
| 與 || 的差別能講對, 更基本的SCE反而卻講錯, 不太合理
03/29 18:26, 23F
文章代碼(AID): #1FSpQpon (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1FSpQpon (Soft_Job)