美文网首页
objc非主流代码技巧——小括号内联复合表达式

objc非主流代码技巧——小括号内联复合表达式

作者: 番薯大佬 | 来源:发表于2018-04-03 14:17 被阅读35次

    A compound statement enclosed in parentheses.
    来自《gcc官方对此的说明》,源自gcc对c的扩展,如今被clang继承。

    RETURN_VALUE_RECEIVER = {(
        // Do whatever you want
        RETURN_VALUE; // 返回值
    )};
    
    

    实例使用示例

    self.backgroundView = ({
        UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
        view.backgroundColor = [UIColor redColor];
        view.alpha = 0.8f;
        view;
    });
    
    self.result = ({
        double result = 0;
        for (int i = 0; i <= M_2_PI; i+= M_PI_4) {
            result += sin(i);
        }
        result;
    });
    

    有点像block和内联函数的结合体,它最大的意义在于:
    1、将代码整理分块,将同一个逻辑层级的代码包在一起;
    2、同时对于一个无需复用小段逻辑,也免去了重量级的调用函数;
    3、这样使得代码量增大时层次仍然能比较明确。

    注意:返回值和代码块结束点必须在结尾。

    相关文章

      网友评论

          本文标题:objc非主流代码技巧——小括号内联复合表达式

          本文链接:https://www.haomeiwen.com/subject/dynqhftx.html