• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 这个方便是什么意思?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 13:44:51 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

_labelView = ({
    UIView * labelView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, _midView.frame.size.width, _midView.frame.size.height)];
    for (int i = 0;i < titleArr.count ; i++) {
        [labelView addSubview:[self returnLabel:titleArr[i] andFrame:CGRectMake(0, i*_height, self.frame.size.width, _height) andColor:[UIColor whiteColor]]];
    }
    labelView;
});

为什么“labelView”可以这样赋值?



Best Answer-推荐答案


这是 statement expression , 括在括号中的复合语句,用作表达式。这是模式的 GCC 描述:

A compound statement enclosed in parentheses may appear as an expression in GNU C. This allows you to use loops, switches, and local variables within an expression.

Recall that a compound statement is a sequence of statements surrounded by braces; in this construct, parentheses go around the braces. For example:

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

is a valid (though slightly more complex than necessary) expression for the absolute value of foo ().

The last thing in the compound statement should be an expression followed by a semicolon; the value of this subexpression serves as the value of the entire construct. (If you use some other kind of statement last within the braces, the construct has type void, and thus effectively no value.)

语句表达式最常见的用法是在 #define 宏中(参见 GCC discussion),在该上下文之外并不常见。

关于ios - 这个方便是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984243/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap