提高代码的可读性1(OC篇)

2023-04-07  本文已影响0人  梁森的简书

1. 使用函数式编程来提高可读性

// 不好的代码
NSMutableArray *numbers = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
    [numbers addObject:@(i)];
}
NSMutableArray *filteredNumbers = [NSMutableArray array];
for (NSNumber *number in numbers) {
    if (number.integerValue % 2 == 0) {
        [filteredNumbers addObject:number];
    }
}

// 好的代码
NSArray *numbers = @[@0, @1, @2, @3, @4, @5, @6, @7, @8, @9];
NSArray *filteredNumbers = [numbers filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSNumber *number, NSDictionary *bindings) {
    return number.integerValue % 2 == 0;
}]];

2. 使用常量和枚举来避免魔法数字和字符串

// 不好的代码
- (void)doSomethingWithStatus:(NSInteger)status {
    if (status == 0) {
        // do something
    } else if (status == 1) {
        // do something else
    }
}

// 好的代码
typedef NS_ENUM(NSInteger, Status) {
    StatusNew = 0,
    StatusInProgress,
    StatusCompleted
};

- (void)doSomethingWithStatus:(Status)status {
    if (status == StatusNew) {
        // do something
    } else if (status == StatusInProgress) {
        // do something else
    }
}

3. 避免使用过多的嵌套

// 不好的代码
if (condition1) {
    if (condition2) {
        if (condition3) {
            // do something
        }
    }
}

// 好的代码
if (condition1 && condition2 && condition3) {
    // do something
}

4. 使用宏来简化代码

// 不好的代码
- (void)doSomethingWithArray:(NSArray *)array {
    if (array && [array isKindOfClass:[NSArray class]] && array.count > 0) {
        // do something
    }
}

// 好的代码
#define IsNonEmptyArray(array) (array && [array isKindOfClass:[NSArray class]] && array.count > 0)

- (void)doSomethingWithArray:(NSArray *)array {
    if (IsNonEmptyArray(array)) {
        // do something
    }
}
上一篇 下一篇

猜你喜欢

热点阅读