当前位置:  开发笔记 > IOS > 正文

在数组中的每个对象上调用实例方法

如何解决《在数组中的每个对象上调用实例方法》经验,为你挑选了1个好方法。

让我们假设这种情况:我有一个对象数组,我想在每个对象上调用实例方法.我可以这样做:

//items is an array of objects with instanceMethod() available
items.forEach { $0.instanceMethod() }

同样的情况也是如此map.例如,我想将每个对象映射到其他mappingInstanceMethod返回值的其他对象:

let mappedItems = items.map { $0.mappingInstanceMethod() }

有更清洁的方法吗?

例如,在Java中可以做到:

items.forEach(Item::instanceMethod);

代替

items.forEach((item) -> { item.instanceMethod(); });

Swift中有类似的语法吗?



1> Martin R..:

你在做什么

items.forEach { $0.instanceMethod() }
let mappedItems = items.map { $0.mappingInstanceMethod() }

是一个干净和Swifty方式.正如在调用SequenceType.forEach时有没有办法引用实例函数?,第一个声明不能简化为

items.forEach(Item.instanceMethod)

但有一个例外:它适用于init采用单个参数的方法.例:

let ints = [1, 2, 3]
let strings = ints.map(String.init)
print(strings) // ["1", "2", "3"]

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有