【发布时间】:2020-12-27 03:27:38
【问题描述】:
我正在使用 kotlin 和函数式编程来开发一个 api。我真的不知道我在这里使用这里是否违反了任何 FP 规则。 我有一个以下函数,它为我提供了 customerNumber 和一堆其他字段。
data class CustomerInfo(val customerNumber:String?=null,val accountNumber:String?=null,val email:String?=null)
我有很多条件的功能,但所有字段的条件都是相同的
fun getCustomerInfo(someDto:SomeDto,someOtherDto:SomeOtherDto,oneMoreDto:OneMoreDto):CustomerInfo
{
var customerNumber = someDto.id
var accountNo = someDto.accountNumber
var email = someDto.email
if(someCondition())
{
customerNumber= someOtherDto.id
accountNo = someOtherDto.accountNo
email = someOtherDto.email
}else if(someOtherConditiion)
{
customerNumber= oneMoreDto.id
accountNo = oneMoreDto.accountNo
email = oneMoreDto.email
}
//and many more conditions like this
return CustomerInfo(customerNumber,accountNo,email)
}
在函数中使用 var 是错误的吗?这里不使用 var 怎么写这个函数? 我知道一旦条件满足,我每次都可以直接返回 dto,但我想在 10 个条件下使用相同的 dto?任何帮助将不胜感激
【问题讨论】:
-
SomeDto和SomeOtherDto等都是不同的类型,但具有与CustomerInfo完全相同的属性? -
我只是举了一个例子,基本上我是从 diff dto's 派生所有 customerInfo 字段
标签: kotlin functional-programming purely-functional