Middle
Kotlin-ში Enum კლასების მუშაობის რა მახასიათებლებია?
sobes.tech AI
პასუხი AI-სგან
ඒනම් පන්තිය — ස්ථිරයන්ගේ කට්ටලයක් නියෝජනය කිරීමට භාවිතා වන විශේෂ වර්ගයක පන්තියකි.
විශේෂාංග:
- ස්ථිරයන් නිර්වචනය: එක් එක් enum ස්ථිරය — enum පන්තියේ නියමිතියකි.
enum class Color { RED, GREEN, BLUE } - ගුණාංග හා ක්රම: enum පන්තියට ගුණාංග හා ක්රම තිබිය හැකිය. එක් එක් ස්ථිරය ඒවා වෙනස් ආකාරයෙන් ක්රියාත්මක කළ හැකිය.
enum class Status(val description: String) { SUCCESS("සාර්ථකව ක්රියාවලිය නිමවිය") , ERROR("දෝෂයක් සිදුවිය") , PENDING("සඳහස") } enum class Direction { NORTH, SOUTH, EAST, WEST; fun getOpposite(): Direction { return when (this) { NORTH -> SOUTH SOUTH -> NORTH EAST -> WEST WEST -> EAST } } } - අනිවාර්ය පන්තිය: එක් එක් enum ස්ථිරය අනිවාර්ය පන්තියක් සමඟ ප්රකාශ කළ හැකිය, එය ක්රම හෝ ගුණාංග ලබා දේ.
enum class State { IDLE { override fun signal() = READY }, READY { override fun signal() = IDLE }; // ලකුණ හා කොටුව අනිවාර්ය abstract fun signal(): State } - අතුරුමුහුණත ක්රියාත්මක කිරීම: enum පන්තිය අතුරුමුහුණතක් ක්රියාත්මක කළ හැකිය.
interface Printable { fun printName() } enum class Shape : Printable { CIRCLE { override fun printName() { println("වෘත්තය") } }, SQUARE { override fun printName() { println("චතුරස්රය") } } } - ඇතුළත් ගුණාංග: එක් එක් ස්ථිරයට ඇතුළත් ගුණාංග තිබේ:
name(ස්ථිරයේ නම, තරඟ මෙන්) සහordinal(ඒකකය පළමු වරට 0 සිට ආරම්භ වේ).enum class Priority { LOW, MEDIUM, HIGH } fun main() { println(Priority.MEDIUM.name) // ප්රතිඵල: MEDIUM println(Priority.HIGH.ordinal) // ප්රතිඵල: 2 } - ඇතුළත් ක්රම:
enumValues<T>(): සියලු enum ස්ථිරයන් අඩංගුArrayආපසු දෙයි.enumValueOf<T>(name: String): නාමය අනුව enum ස්ථිරය ආපසු දෙයි.IllegalArgumentExceptionඑබේ, එසේ නම් ස්ථිරය හමු නොවන්නේය.
fun main() { val allPriorities = enumValues<Priority>() println(allPriorities.joinToString()) // ප්රතිඵල: LOW, MEDIUM, HIGH val highPriority = enumValueOf<Priority>("HIGH") println(highPriority) // ප්රතිඵල: HIGH } whenප්රකාශයන්හි භාවිතය:whenසඳහා ඉතා සුදුසුය. සම්පූර්ණ ශාඛා ආවරණය නොකළහොත් (ඒක ප්රකාශයක් ලෙස භාවිතා කරන විට) සංඛ්යාතය අනතුරු ඇඟවීමක් ලබා දේ.fun processStatus(status: Status) { when (status) { Status.SUCCESS -> println("සාර්ථක") Status.ERROR -> println("දෝෂය") Status.PENDING -> println("සඳහස") } }
Kotlin හි enum මෙන්ම Java හි එවැනිවලට වඩා බලවත් වේ, ගුණාංග, ක්රම එකතු කිරීමට සහ අතුරුමුහුණතක් ක්රියාත්මක කිරීමට ඉඩ සලසයි.