2
A
回答
4
這是聲明的簡短表示:
noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;
2
這是一個位或運算符用作分配
noti.flags |= Notification.FLAG_AUTO_CANCEL;
是一樣的
noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL
2
這是規定NT版本的Bitwise Or操作者,即:
noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;
的bitwise or
確實包含性的按位或運算:
10110 bitwise or
01100
-----------------
11110
從源代碼:
位被按位或成如果通知 應在用戶點擊時取消,則應設置標誌字段。
public static final int FLAG_AUTO_CANCEL = 0x00000010;
這是hexadecimal。如果你想知道爲什麼我們使用這些類型的標誌數16,這是因爲其他的標誌將表示:
0x00000020
0x00000040
0x00000080
每一次,我們去同比的2此轉換爲二進制的功率,我們得到:
00010000
00100000
01000000
10000000
因此,我們可以使用一個bitwise or
噸o確定哪些標誌存在,因爲每個標誌只包含一個1
,它們都在不同的位置。什麼這個表達你貼(可能)不
1
簡單的解釋:
每個整數類型被表示爲位的名單。所以noti.flags
有像00101
類似的表示。 noti.flags
變量似乎是標誌的表示,即類的選項。這意味着每一位意味着別的東西,並且可以使該類以不同的方式運行,具體取決於位是0還是1.
|
運算符是一個按位或運算符。 |=
是按位或運算符的賦值版本。 (表現就像+=
)
現在Notification.FLAG_AUTO_CANCEL
是單個標誌的常量,可能是10000
。 如果您將位或(|
)應用於Notification.FLAG_AUTO_CANCEL
和noti.flags
(00101 | 10000
),則結果將爲。這個結果現在分配給noti.flags。
您發佈的表達式基本上只設置了一個新標誌,稱爲FLAG_AUTO_CANCEL
標誌變量noti.flags
。
相關問題
- 1. 由此語法困惑的Java
- 2. 關於一些java語法的困惑
- 3. 困惑的C語法
- 4. 由simplescalr preditor困惑
- 5. 由LinkedList的困惑
- 6. 由Apache RewriteEngine困惑
- 7. 由JavaFX ListChangeListener.Change困惑
- 8. 對類方法語法感到困惑
- 9. Java繼承...困惑
- 10. 困惑在Java中
- 11. 困惑JAVA接口
- 12. 由numpy meshgrid輸出困惑
- 13. 由MySQL困惑INFORMATION_SCHEMA.TABLES信息
- 14. 由TensorFlow困惑nn.in_top_k輸出
- 15. 由ror Mechanise感到困惑
- 16. 困惑的角路由
- 17. 令人困惑的Javascript語法錯誤
- 18. 困惑過的UITableView numberOfRowsInSection語法
- 19. 困惑AT&T彙編語法
- 20. 困惑與AT&T的彙編語法
- 21. 關於node-mongodb-native語法的困惑
- 22. 關於Go語法的困惑
- 23. 用於循環語法困惑
- 24. 關於python語法的困惑
- 25. 新到Android - <integer>語法困惑
- 26. 困惑這個斯卡拉語法
- 27. 關於Ruby語法的困惑
- 28. 對ES6對象語法感到困惑
- 29. PHP困惑for()語句
- 30. 困惑在SQL SELECT語句