【发布时间】:2020-10-01 00:45:08
【问题描述】:
我已经创建了一个对象,但是对于其中一个参数,创建过程很复杂。创建它后,我想将相同的值用于另一个参数。让我简单地给你举个例子:
MyModel(convenienceFee = raw.data?.fee,
data = raw.data?.order?.map {/*complex operation that returns a list*/} ?: emptyList(),
summary = createSummaryFrom(data), //compiler wont allow me using data here
)
createSummaryFrom 无关紧要,它只需要一个列表并对其进行一些操作。
但问题是我无法在最后一行使用“数据”。它说它是一个未解决的领域。如何在另一个参数中使用已声明参数的值?
显然我可以将调用移到声明之外,但想知道为什么我可以在声明的同时在内部进行。
【问题讨论】:
-
有什么理由不能使用变量吗?这里
data只是一个参数名,所以不能用,只是给程序员的一个提示。 -
是的,我可以使用变量,实际上我想知道是否有一些我不知道的捷径来完成这项工作。
-
否,除非您将函数签名更改为使
summary参数的默认值等于createSummaryFrom(data)。
标签: kotlin