【问题标题】:Use same loop to iterate over multiple arrays subsequently?随后使用相同的循环迭代多个数组?
【发布时间】:2020-06-09 07:45:19
【问题描述】:

不寻找zip(),因为我有多个数组:

var cellphones = [IPhone(), Galaxy()]
var laptops = [Macbook(), Ideapad()]

我想以任何顺序遍历它们:

cellphones.forEach { device in
    var multiple = lines()
    ofCode()
    thatDontNeedToKnowIfPhoneOrLaptop(device)
}
laptops.forEach { device in
    var multiple = lines()
    ofCode()
    thatDontNeedToKnowIfPhoneOrLaptop(device)
 }

如何在不重复循环体的情况下做到这一点?

【问题讨论】:

  • 用重复的代码创建一个闭包/函数怎么样?

标签: arrays swift loops


【解决方案1】:

假设数组上的所有对象都实现相同的protocol 或继承相同的类,我相信这会起作用:

let loop: ((DeviceProtocol) -> Void) = { device in
    var multiple = lines()
    ofCode()
    thatDontNeedToKnowIfPhoneOrLaptop(device)
}

cellphones.forEach(loop)
laptops.forEach(loop)

【讨论】:

  • 谢谢,这实际上比我要求的解决方案更好地解决了我的问题
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2015-07-17
  • 2016-05-08
  • 2018-09-08
  • 1970-01-01
  • 2014-11-16
相关资源
最近更新 更多