如何在scala中重构相似和重复的函数
我在我的项目中的多个地方都有这样的代码:如何在scala中重构相似和重复的函数,scala,refactoring,dry,Scala,Refactoring,Dry,我在我的项目中的多个地方都有这样的代码: def fun1(paramA: A, url: String)(implicit x: X): Future[T] = { val select = x.someFunction(url) val res = anotherFunction(select, paramA).mapTo[T] res } def fun2(paramB: B, url: String)(implicit x: X): Future[T] = { val
def fun1(paramA: A, url: String)(implicit x: X): Future[T] = {
val select = x.someFunction(url)
val res = anotherFunction(select, paramA).mapTo[T]
res
}
def fun2(paramB: B, url: String)(implicit x: X): Future[T] = {
val select = x.someFunction(url)
val res = anotherFunction(select, paramB).mapTo[T]
res
}
def fun3(paramC: C, url: String)(implicit x: X): Future[T] = {
val select = x.someFunction(url)
val res = anotherFunction(select, paramC).mapTo[T]
res
}
我觉得它不是干的。此外,每当我需要更改某些内容时,我必须更新所有方法的代码
我最近开始使用Scala进行编码,之前我使用的是Ruby,它不是类型化语言。我不确定这是Scala中最好/正确的编写方式,或者我们可以重构它 您没有提供有关类型
X
或t
的任何相关信息,但从示例代码来看,您可以这样做
def fun[P](param: P, url: String)(implicit x: X): Future[T] =
anotherFunction(x.someFunction(url), param).mapTo[T]
这假设someFunction()
在所有三个示例中都是相同的函数。(同样适用于另一个函数()
)