Kotlin 中的枚舉類 Enum Class

枚舉類在 Kotlin 中是非常強大和靈活的工具,可以用于表示一組固定的常量,并且可以包含屬性、方法、構造函數和伴生對象。它們在處理狀態、選項等場景中非常有用。

1、枚舉類的定義

  • 枚舉類用于創建具有一組數量有限的可能值的類型。
  • 枚舉的每個可能值都稱為“枚舉常量”。每個枚舉常量都是一個對象。枚舉常量位于大括號內,互相以英文逗號分隔。按照慣例,常量名稱中的每個字母都要大寫。
  • 枚舉類的語法定義如下:
    在這里插入圖片描述
  • 使用點運算符來引用枚舉常量。
    在這里插入圖片描述
enum class Direction {NORTH, SOUTH, WEST, EAST
}fun main() {val dir = Direction.NORTH
}

2、枚舉類的屬性和方法

  • 枚舉類可以有屬性和方法,就像普通類一樣。
  • 由于每個枚舉都是枚舉類的一個實例,,因此它可以被初始化為:
enum class Color(val rgb: Int) {RED(0xFF0000),GREEN(0x00FF00),BLUE(0x0000FF);fun rgbString(): String {return String.format("#%06X", 0xFFFFFF and rgb)}
}
  • 屬性:rgb 是一個屬性,每個枚舉常量都可以有自己的值。
  • 方法:rgbString 是一個方法,用于將 RGB 值格式化為十六進制字符串。
  • 如果枚舉類定義了任何成員,需要用分號常量定義與成員定義分開

3、枚舉類的構造函數

  • 枚舉類可以有構造函數,用于初始化屬性。構造函數必須是私有的(private),因為枚舉類的實例

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919799.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

集成電路學習:什么是K-NN最近鄰算法

K-NN:最近鄰算法 K-NN,即K-最近鄰算法(K-Nearest Neighbor algorithm),是一種基本的監督學習算法,廣泛應用于分類和回歸問題中。以下是對K-NN算法的詳細解析: 一、K-NN算法的基本原理 1、K-NN算法的核心思想是: 對于一個新的數據點,算法會在訓練數據集中找到與…

2025最新版mgg格式轉MP3,mflac轉mp3,mgg格式如何轉mp3?

注:需要使用舊版客戶端,并需要禁用更新。使用說明內有鏈接打開軟件,可以選擇將待轉換的歌曲拖入;或者點擊添加將mgg或者mflac歌曲拖入點擊開始轉換等待一會就轉換完成,默認轉換后的歌曲存在桌面的【轉換成功】的文件夾…

嵌入式學習day34-網絡-tcp/udp

day33練習:客戶端 與 服務器實現一個點對點聊天tcp客戶端clifd socketconnect//收 --父進程 //發 --子進程 tcp服務器 listenfd socketbindlistenconnfd accept()//收 -- 父進程 //發 -- 子進程client.c#include "../head.h"int res_fd[1]; // 只需要存…

零知開源——基于STM32F103RBT6與ADXL362三軸加速度計的體感迷宮游戲設計與實現

?零知IDE 是一個真正屬于國人自己的開源軟件平臺,在開發效率上超越了Arduino平臺并且更加容易上手,大大降低了開發難度。零知開源在軟件方面提供了完整的學習教程和豐富示例代碼,讓不懂程序的工程師也能非常輕而易舉的搭建電路來創作產品&am…

《Linux 網絡編程一:網絡編程導論及UDP 服務器的創建與數據接收》

Linux下的網絡編程1. 目的實現不同主機之間進程的通信。2. 問題主機之間在物理層面必須互聯互通。進程之間在軟件層面必須互聯互通。IP地址:計算機的軟件地址,用于標識計算機設備。MAC地址:計算機的硬件地址(固定)。網…

排序(數據結構)

比較排序 插入排序(斗地主摸牌就是一個插入排序) 單純的插入排序也叫直接插入排序 時間復雜度: 最好O(n)最壞O(n^2) 過程 先寫單趟,再寫整體 依次比較,如果大于就往后挪動,否則就退出循環,插入數…

【C++組件】Elasticsearch 安裝及使用

🌈 個人主頁:Zfox_ 🔥 系列專欄:C框架/庫 目錄🔥 介紹 🔥 ES 安裝 🦋 安裝 kibana🦋 ES 客戶端的安裝🔥 ES 核心概念 🦋 索引(Index)&…

項目:電動車報警器

1.項目需求 點擊遙控器A按鍵,系統進入警戒模式,一旦檢測到震動(小偷偷車),則喇叭發出聲響報警,嚇退小偷。 點擊遙控器B按鍵,系統退出警戒模式,再怎么搖晃系統都不會報警,否則系統一直發出尖叫&a…

GDSFactory環境配置(PyCharm+Git+KLayout)

1、安裝 PyCharm 和 KLayout 安裝 PyCharm(官網社區版即可)和 KLayout(官網最新版),這兩款軟件均開源,安裝操作簡單,這里不再贅述。(注意:PyCharm軟件是否安裝成功以能否…

STM32 定時器(輸出模式)

?? ?一、輸出模式總覽?STM32定時器的輸出比較模式通過比較計數器(CNT)與捕獲/比較寄存器(CCRx)的值,控制輸出引腳(OCx)的電平狀態。六種模式定義如下:?模式宏??觸發動作?&am…

嵌入式硬件篇---手柄

手柄原理:手柄遙控的原理其實可以簡單理解為 “信號的發送與接收”,就像兩個人用對講機聊天,一方說話(發送信號),另一方聽話(接收信號),然后根據內容行動。下面用通俗的方…

數據庫架構開發知識庫體系

摘要面向初創與企業團隊,系統梳理數據庫與數據平臺從采集、傳輸、存儲、處理、服務化到治理與安全的全鏈路。覆蓋 OLTP/OLAP/HTAP、湖倉一體與實時數據棧,結合國內外工具與方法論,給出架構選型、性能優化、可靠性與合規要點,以及可…

在Excel和WPS表格中合并多個單元格這樣最快

如果要把WPS表格和Excel中多個單元格的數據合成到一個單元格中,不用函數,只需要先寫輸入公式,然后在各個單元格之間輸入&符號即可。(當然,&符號不只是連接單元格的數據,也可以直接輸入內容連接&…

在嵌入式上用 C++14實現簡單HSM狀態機

文章目錄概述為什么要遷移到 C,以及 C 的陷阱目標與挑戰為什么不能直接使用 std::function?解決方案:POD 回調與模板 Trampoline核心設計模板 trampoline 實現兩種成員函數綁定策略1. **Per-Transition Context(每個狀態轉移綁定一…

【unity】Obfuz加固混淆日志還原解析方案ObfuzResolver

Github | Gitee ObfuzResolver是基于obfuz-tools針對Obfuz的一項輔助工具,方便開發者在unity編輯器中或者運行時快捷將使用Obfuz混淆加固后的日志信息還原為原始信息,以輔助開發者快速定位Bug。 特性 支持unity編輯器模式下還原被加固混淆的日志信息&a…

2025DevOps平臺趨勢解讀:哪些DevOps工具正在引領行業變革?

DevOps平臺已成為企業提升研發效能、實現敏捷交付的核心支柱。2025年DevOps領域正經歷深刻變革,平臺能力正從“工具鏈整合”向“價值流智能中樞”躍升。01. 2025Devops平臺趨勢解讀“全棧式”與“模塊化/可組合”的平衡:企業既需要能覆蓋開發、測試、部署…

第二階段Winform-4:MDI窗口,布局控件,分頁

1_MDI窗口 (1)MDI是指將多控件窗體在同一窗體中打開,可以設置重疊打開,平捕打開等,MDI窗體(Multiple-Document Interface,多文檔界面)用于同時顯示多個文檔。在項目中使用MDI窗體時&#xff0c…

實用R語言機器學習指南:從數據預處理到模型實戰(附配套學習資源)

一、為什么需要掌握機器學習建模?在科研與項目實踐中,機器學習已成為數據挖掘的核心工具。本文手把手帶你在R語言中實現7大常用模型:邏輯回歸/正則化回歸決策樹/隨機森林SVM支持向量機XGBoost梯度提升神經網絡全程包含數據標準化→模型訓練→…

go.uber.org/zap 日志庫高性能寫入

使用 go.uber.org/zap 實現日志分割功能 實現按照單個文件最大MB自動分割,最多保留多少天的文件,是否啟用壓縮,按天自動分割日志 核心依賴 go.uber.org/zap:核心日志庫 lumberjack.v2:日志輪轉工具(實現按大小/時間分割) 時間處理依賴標準庫 time 實現步驟 1. 初始化…

電腦端完全免費的動態壁紙和屏保軟件(真正免費、無廣告、無會員)

? 1. Lively Wallpaper(強烈推薦) 特點:完全免費、開源、無廣告,支持本地視頻/GIF/網頁作為動態壁紙內置資源:12個高質量動態壁紙(可自定義)屏保功能:支持將動態壁紙一鍵設為屏保系…