是否有一些类似于 Haskell 的 intersperse 函数的原生 objective c 方法?
举个例子
Prelude> Data.List.intersperse ',' "abcdefg"
"a,b,c,d,e,f,g"
或者可能是一些将对象连接到另一个对象上的函数?我知道我可以通过遍历集合来手动完成它,我只是想知道是否有一些内置功能可以为这个用例服务
我有一些 UIBarButtonItem
对象,
[barButtonItem1,barButtonItem2,barButtonItem3]
我想结束:
[barButtonItem1,flexButtonItem,barButtonItem2,flexButtonItem,barButtonItem3]
最佳答案
通过 Google 快速搜索此类函数,找到了一个 NSArray+FunctionalKit.h
,它实现了您想要的 intersperse
函数。鉴于这存在,我很想说没有内置函数可以做到这一点。您可以将其添加到您的项目中:
@interface NSArray (Intersperse)
- (NSArray *)intersperse:(id)object;
@end
@implementation NSArray (Intersperse)
- (NSArray *)intersperse:(id)object {
NSMutableArray *interspersed = [NSMutableArray array];
for (NSUInteger i = 0; i < [self count]; ++i) {
[interspersed addObject:[self objectAtIndex:i]];
if (i != [self count] - 1) [interspersed addObject:object];
}
return [NSArray arrayWithArray:interspersed];
}
@end
用法:
NSArray *buttons = @[barButtonItem1,barButtonItem2,barButtonItem3];
NSArray *allButtons = [buttons intersperse:flexButtonItem];
整个 GitHub 项目是 available .
关于ios - Objective-C 相当于 Haskell 的 intersperse 函数?或在另一个对象上加入对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547610/