Sobes.tech
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 හි එවැනිවලට වඩා බලවත් වේ, ගුණාංග, ක්‍රම එකතු කිරීමට සහ අතුරුමුහුණතක් ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.