【发布时间】:2016-02-03 06:13:28
【问题描述】:
有两种非常相似的方法,我试图在 Scala 中从中提取一个高阶函数。
-
一种方式:
def delete(userId: String) = { val entries = dao.getEntriesForIds(dao.getXXX(userId)) dao.deleteRef(entries, userId) } -
另一种方式:
def delete(userId: String) = { val entries = dao.getEntriesForIds(dao.getXXX(userId)) .filter(_.actorId != userId) dao.deleteRef(entries, userId) } -
我的重构版本,好像不是高阶函数:
def delete(userId: String, **filter: Boolean**) = { val entries = dao.getEntriesForIds(dao.getXXX(userId)) **if (filter)** entries.filter(_.actorId != userId) dao.deleteRef(entries, userId) }
我怎样才能使它成为一个高阶函数?
【问题讨论】:
-
你不必用你的名字签名,因为它会自动出现在你帖子的右下角。
-
有专门的Code Review 论坛。您可能会在那里收到更多回复。
标签: scala higher-order-functions