遍历一个传递闭包的列表来处理元素 - groovy

时间:2016-04-11 15:41:17

标签: groovy closures

以下摘录中的正确方法是什么?

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
    let shop = shops[indexPath.row]
    cell.logo.image = shop.logo
    cell.programWorkingDays.text = "Luni-Vineri: \(shop.workingDays)"
    cell.programSambata.text = "Sambata: \(shop.sambata)"
    cell.programDuminica.text = "Duminica: \(shop.duminica)"
    cell.openImage.image = shop.open ? openSign : closedSign
    return cell
  }
}

请建议。

1 个答案:

答案 0 :(得分:1)

如果你要做的只是打印元素,你应该使用each

def list = ["a", "b", "c", "d"]
list.each { println(it) }

findAllgrep用于查找列表中的特定元素。 collect用于从给定列表中的元素构建新集合。

因此,打印所有元素的正确方法是使用each,这正是您的示例。当您不关心处理结果时,这也可能是您的选择。如果您只想处理列表的一部分,请使用findAllgrep,它可以在运行闭包之前过滤列表。这些以及collect都会返回一个新列表。