我在看這段代碼:爲什麼使用枚舉二進制移
/**
* Bitmask of states
*/
export const enum ViewState {
FirstCheck = 1 << 0, // result is 1
ChecksEnabled = 1 << 1, // result is 2
Errored = 1 << 2, // result is 4
Destroyed = 1 << 3 // result is 8
}
我不明白爲什麼不能簡單地指定有整數結果或整數0,1,2,3
。有人有什麼主意嗎?
因爲它更容易閱讀(這對我來說無論如何也顯然是作者)。隨着這個列表變得更加容易(對於人類來說)添加第16個元素並使用'1 << 15',然後找出結果值將是什麼。所以只是一個偏好問題。 – Igor
@Igor,謝謝你的建議,但是在代碼中,它始終是'ViewState.Destroyed',所以它沒有什麼關係 –
如果意圖是將多個值進行或運算(這是典型的位掩碼),那麼它**不會影響到那裏的數字。 –