gpt4 book ai didi

java - 如何重构scala代码?

转载 作者:行者123 更新时间:2023-12-02 03:08:19 25 4
gpt4 key购买 nike

实际上,我编写了一个 Scala 脚本,它根据某些参数对函数进行排序。看下面的代码片段:

object TestTypes {
type SortFn = ((String, TestMetricFields)) => Double
case class TestMetricFields(maths: Int, science: Int)
}

trait TestMarks {
def sName: String
def getSortFun(): SortFn
}

object TestMarkStudent extends TestMarks {
override def sName: String= "xxx"
override def getSortFun(): SortFn = {
input: (String, TestMetricFields) => input._2.maths + input._2.science
}
}

这里我想避免在上面的代码中使用._2。如何重写scala代码?

我尝试了以下方法,但失败了。

override def getSortFun(): (String, TestMetricFields) => SortFn = {
(sName: String, testField: TestMetricFields) => {
input: (String, TestMetricFields) => 1.0 * testField.maths + testField.science
}
}

任何人都可以帮助我在不使用 ._2 的情况下重构代码吗?

最佳答案

你可以这样写:

 override def getSortFun(): SortFn = { case(_, fields) => 
fields.maths + fields.science
}

关于java - 如何重构scala代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com