From 99bab9d9e9f8063b8e8d9a76393fbf782a5ec0da Mon Sep 17 00:00:00 2001 From: ashraf-patel Date: Mon, 5 Aug 2019 14:31:01 +0530 Subject: [PATCH] Kotlin enum --- kotlin.html.markdown | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/kotlin.html.markdown b/kotlin.html.markdown index 9336d217..5bbf6847 100644 --- a/kotlin.html.markdown +++ b/kotlin.html.markdown @@ -350,11 +350,22 @@ fun helloWorld(val name : String) { // Enum classes are similar to Java enum types. enum class EnumExample { - A, B, C + A, B, C // Enum constants are separated with commas. } - fun printEnum() = println(EnumExample.A) // => A +// Since each enum is an instance of the enum class, they can be initialized as: +enum class EnumExample(val value: Int) { + A(value = 1), + B(value = 2), + C(value = 3) +} +fun printProperty() = println(EnumExample.A.value) // => 1 + +// Every enum has properties to obtain its name and ordinal(position) in the enum class declaration: +fun printName() = println(EnumExample.A.name) // => A +fun printPosition() = println(EnumExample.A.ordinal) // => 0 + /* The "object" keyword can be used to create singleton objects. We cannot instantiate it but we can refer to its unique instance by its name.