package main enum PaymentResult { Accepted(String) Rejected(String) Pending } fun describe(result: PaymentResult): String { return match (result) { PaymentResult.Accepted(id) -> "accepted " + id PaymentResult.Rejected(reason) -> "rejected " + reason PaymentResult.Pending -> "pending" } } fun main() { val result = PaymentResult.Accepted("payment-1") println(describe(result)) }