cedric
01/11/2018, 11:28 PMinterface Populace {
val people: Set<People>
}
chb0kotlin
01/11/2018, 11:55 PMinterface Populace {
val people : Set<People>
fun getPopulation() : Int
}
data class People(val age:Int, val givenName:String, val surname:String)
class CompositePopulace(private val populi:Set<Populace>) : Populace {
override val people by lazy {
populi.flatMap { it.people }.toSet()
}
override fun getPopulation(): Int = people.size
}
cedric
01/11/2018, 11:57 PMpopulation
should be a property toopopulation
, more like size
)chb0kotlin
01/12/2018, 12:25 AMinterface Populace {
val people : Set<People>
val size : Int
}
data class People(val age:Int, val givenName:String, val surname:String)
class CompositePopulace(private val populi:Set<Populace>) : Populace {
override val people by lazy {
populi.map { it.people }.reduce { s,t -> s union t }
}
override val size = people.size
}