擴充套件型別:型別別名、列舉、介面、類。
在型別約束位置,會產生重複**,可以使用型別別名解決該問題
邏輯含義和真實的值產生了混淆,會導致修改真實的值的時候,產生大量的修改
字面量型別不會進入到編譯結果,比如我們想迴圈便利它的值,那麼就不行。
所以需要使用列舉
enum gender
gender.male
gender.female
列舉欄位的值只能是字串或者數字數字列舉的值,會自動自增。不指定初始值,那麼從 0 開始。
enum level
// 數字列舉編譯後的結果跟字串不太一樣,以上面的為例
// 編譯後
盡量不要在乙個列舉中,即出現數字,又出現字串
使用列舉的時候,盡量使用列舉的名稱
類似於 react 原始碼中,型別的判斷,通過位運算,給予許可權
enum permission
// 組合許可權:let p = permission.read | permission.write
// 判斷是否擁有某個許可權: let flag = p & permission.read
// 刪除某個許可權: p = p ^ permission.read
C 列舉型別Enumerable及其擴充套件
重要的資料型別 列舉型別是程式設計裡重要的一種資料型別,了解其本質和擴充套件型別的使用方法,將有助於解決程式設計中遇到的資料處理問題。ienumerable介面 實現了ienumerable介面的集合表明該集合能夠提供乙個enumerator 列舉器 物件,支援當前的遍歷集合。ienumerable...
強型別列舉以及C 11對原有列舉型別的擴充套件
非強型別作用域,允許隱式轉換為整型,占用儲存空間及符號性不確定,都是列舉類的缺點。針對這些缺點,新標準c 11引入了一種新的列舉型別,即 列舉類 又稱 強型別列舉 語法 在enum後加上關鍵字class enum class enumtype 優勢 強作用域,強型別列舉成員的名稱不會被輸出到其父作用...
使用擴充套件方法實現列舉型別與數值型別的相互轉換
簡單的說,擴充套件方法可以為某個型別t的所有例項都擴充套件出n個方法,並且t可以是值型別。為型別t擴充套件方法的步驟 1.定義乙個靜態類 2.往類中新增靜態方法,其第乙個引數為this t anyname,後面再是實際的方法引數 為int擴充套件方法add示例 view code namespace...