gpt4 book ai didi

Scala 将其更改为列表的方法?

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

假设我有一个例程,它接受一个枚举值作为参数并返回一个 bool 值……我想检查一组这些枚举值,看看它们是否都为真。有没有一种惯用的方法来做到这一点。这是我的“老派”尝试,似乎不是 scala-ish:

def allUnitQueuesEmpty(): Boolean =
( getQueue(QID.CPU).isEmpty() &&
getQueue(QID.L1C_I).isEmpty() &&
getQueue(QID.L1D_I).isEmpty() &&
getQueue(QID.L1VC_I).isEmpty() &&
getQueue(QID.L1C_D).isEmpty() &&
getQueue(QID.L1D_D).isEmpty() &&
getQueue(QID.L1VC_D).isEmpty() &&
getQueue(QID.L1WB_D).isEmpty() &&
getQueue(QID.L2C).isEmpty() &&
getQueue(QID.L2WB).isEmpty() &&
getQueue(QID.MEM_RD).isEmpty() &&
getQueue(QID.MEM_WRT).isEmpty() );

这可以用列表来完成吗?

-杰

最佳答案

实际上不需要列表。 QID.values()返回所有 QID 的数组值,并且数组可以隐式转换为 Scala 集合,这允许您定义

def allUnitQueuesEmpty(): Boolean = QID.values.forall(v => getQueue(v).isEmpty)

如果您只需要这些值中的一些,这将起作用:
import QID._
def l1UnitQueuesEmpty(): Boolean = Array(L1C_I, L1D_I, L1VC_I).forall(v => getQueue(v).isEmpty)

关于Scala 将其更改为列表的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3543420/

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