Skip to content

Instantly share code, notes, and snippets.

@le0nidas
Created April 26, 2020 11:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save le0nidas/1d4ef8196b10bb321bda9194958a749f to your computer and use it in GitHub Desktop.
Save le0nidas/1d4ef8196b10bb321bda9194958a749f to your computer and use it in GitHub Desktop.
class Task(
val description: String,
val assignedTo: AssignedTo
)
sealed class AssignedTo(val name: String) {
object Nobody : AssignedTo("")
class User(name: String) : AssignedTo(name)
}
fun main() {
val buyMilk = Task("Buy milk", AssignedTo.Nobody)
val writePost = Task("Write post", AssignedTo.User("le0nidas"))
print(buyMilk, writePost)
// Task 'Buy milk' is assigned to
// Task 'Write post' is assigned to le0nidas
}
private fun print(vararg tasks: Task) {
tasks.forEach { task ->
println("Task '${task.description}' is assigned to ${task.assignedTo.name}")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment