gpt4 book ai didi

scala - 如何从 Scala 的列表中获取任意属性的最大值?

转载 作者:行者123 更新时间:2023-12-04 16:16:34 25 4
gpt4 key购买 nike

假设我有一个看起来像这样的类:

class Foo(Prop1:Int, Prop2:Int, Prop3:Int)
{
..
}

我想创建一个函数,从 Foo 列表中获取某些任意属性的最大值。 s。

像这样:
def getMax(Foos:List[Foo], Property:??) = Foos.map(_.Property).sort(_ > _).head

如果我调用 getMax(myFooList, Prop1) ,它将返回最高值 Prop1来自此列表 Foo s。

我的问题是,我怎样才能做到这一点?我想我可以为 Property 创建某种枚举(scala 等效项)并做一个 match然后运行 ​​ map在适当的属性上,但这似乎是很多工作 - 我每次都必须扩展我的枚举和函数 Foo被重构。

另外,不是那么重要,但是有没有比我所做的更好的方法来获取列表的最大值?

最佳答案

您应该使用标准 maxBy 方法:

List(("a", 2), ("b", 3), ("c", 4)).maxBy(_._2)
=> (String, Int) = (c,4)

关于scala - 如何从 Scala 的列表中获取任意属性的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1446214/

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