小括號內聯(lián)復合表達式

A compound statement enclosed in parentheses may appear as an expression in GNU C.
此用法來自gcc官方說明,源自gcc對c的擴展,如今被clang繼承。

({ int y = foo (); int z;
   if (y > 0) z = y;
   else z = - y;
   z; })

在iOS中可以這樣使用:

    UIButton *pop = ({
        UIButton *button = [[UIButton alloc] initWithFrame: CGRectMake(160, 400, 120, 40)];
        button.backgroundColor = [UIColor redColor];
        [button setTitle: @"pop" forState: UIControlStateNormal];
        [button addTarget: self action: @selector(popView) forControlEvents: UIControlEventTouchUpInside];
        button;
    });

有點像block和內聯(lián)函數(shù)的結合體,它最大的意義在于將代碼整理分塊,將同一個邏輯層級的代碼包在一起。

值的注意的是: 返回值和代碼塊結束點必須在結尾

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容