如何在不每次调用对象名称的情况下从对象获取多个值?

时间:2019-06-01 17:28:30

标签: kotlin

我有word.chars.chunk { |e| VOWELS.include? e }.to_a #=> [[false, ["t", "r"]], [true, ["u"]], [false, ["c", "k"]]] 类,它有7个参数。我还有Weekdays对象,其中包含满足entity类的所有必需参数。 通常我会写这样的东西来初始化这个类:

Weekdays

但是每次我需要调用 Weekdays(entity.isMonday, entity.isTuesday, entity.isWednesday, entity.isThursday, entity.isFriday, entity.isSaturday, entity.isSunday) 对象来从中获取价值时。是否有任何关键字能让我每次想从中获得价值时都不调用entity

1 个答案:

答案 0 :(得分:0)

根据您的要求,您可以在Weekdays类中添加辅助构造函数,该类以所示方式调用主要构造函数。

或者您可以将工厂方法添加到其伴随对象,该方法可以使用with进行一些简化,例如:

class Weekdays(/*...*/) {
    /*
    ...
    */
    companion object {
        fun Weekdays(entity: Entity) = with(entity) {
            Weekdays(isMonday, isTuesday, isWednesday, isThursday, isFriday, isSaturday, isSunday)
        }
    }
}

或者您可以重组Weekdays使其具有数组或其他结构,而不是命名字段。