【发布时间】:2013-05-27 18:57:38
【问题描述】:
我对 Scala 比较陌生,只是想了解如何使用部分应用的函数来解决我的问题。
我的问题是,在我的代码中,我在多个地方都有以下 foreach 逻辑:
for (teamType <- TeamType.allTypes) {
findViewById(teamType.layoutID).findViewById(buttonID)
.setOnClickListener(matchButtonOnClickListener)
}
又在这里:
for (teamType <- TeamType.allTypes) refreshTeamStatisticViews(teamType)
基本上,对于 TeamType 案例对象中的每个 teamType,我都希望执行一个返回 Unit 的函数
我想做的是将 foreach 部分移动到 TeamType 案例对象中,然后让它接受一个返回 Unit 的函数或部分应用的函数。
例如,TeamType 将包含以下内容:
def forAllTeamTypes(fun: TeamType => Unit) = for(teamType <- allTypes) fun(teamType)
对于上面的第二个示例,我可以将其更改为
TeamType.forAllTeamTypes(refreshTeamStatisticViews)
但是,对于更复杂的第一个示例,我不确定如何将其应用于部分应用的函数。
有人可以帮我吗?
【问题讨论】:
标签: scala