Kotlin 全面學習之路 十二 列舉類

2021-08-28 05:27:05 字數 1574 閱讀 8914

在對 密封類 的學習過程中我們知道兩者之間有所相同,那就具體學習一下 kotlin 中的列舉類。

enum class direction
每乙個列舉常量都是乙個物件,列舉常量間使用逗號分隔。

enum class ozwitch(val des: string)
列舉類的每乙個列舉常量都是列舉類的例項,所以可以如上所示通過建構函式進行初始化。

除了不能繼承乙個 enum 外,我們基本可以把 enum 看作乙個常規的類,我們可以向 enum 新增方法。

enum class ozwitch(var des: string) 

}

具體呼叫:

object main 

}}

正常列印日誌如下:

west

westwestnortheastsouth

north

northwestnortheastsouth

east

eastwestnortheastsouth

south

southwestnortheastsouth

從列印結果來看,每乙個列舉常量例項都會呼叫相同的方法、行為(其具體邏輯也是相同的)。

如何載入自己的邏輯?有兩種方法:

匿名類介面實現

列舉類常量可以宣告自己的匿名類:

enum class ozwitch(var des: string) ")}},

north("north") ")}},

east("east") ")}},

south("south") ")}};

abstract fun showdes()

}

object main 

}}

north

i am north

south

i am south

east

i am east

west

i am west

列舉類的每個例項物件都執行了自己相應的方法邏輯。

inte***ce info
enum class ozwitch(var des: string):info "}},

east("east") "}},

south("south") "}},

north("north") "}};

}

object main 

}}

west

i am west

east

i am east

south

i am south

north

i am north

列舉類的每個例項物件都執行了自己相應的方法邏輯。

十二 機器學習之路 numpy庫

寫在前面 這篇部落格內容介紹的比較簡單的基本知識,適合python和機器學習零基礎的人看,如果讀者對numpy比較了解的話,可以pass。numpy numpy是python的乙個科學計算的庫,提供了矩陣運算的功能,之前提到的梯度下降法每次迭代都需要遍歷所有的資料,大大降低的程式的運算速度,如果換成...

Vue的學習之路十二 過濾器

p div p div 定義乙個 vue 全域性的過濾器,名字叫做 msgformat 全域性過濾器,所有的vue例項都能共享 vue.filter msgformat function msg,data,data2 vue.filter test function msg var vm newvu...

Linux學習之路(十二) rpm包管理器

軟體包管理器 redhat package manager 打包成一檔案 二進位制程式,庫檔案,配置檔案,幫助檔案 生成資料庫,追蹤所安裝的每乙個檔案 軟體包管理器的核心功能 1.製作軟體包 2.安裝 解除安裝 公升級 查詢 校驗 資料庫的重建 驗證資料報等工作 包含格式 name version ...