请教楼主
Closed this issue · 2 comments
lvxiangan commented
楼主,你好!请教一下:
// 懒加载
#define HT_LAZY(object, assignment) (object = object ?: assignment)
-
(UIImageView *)backgroundImageView
{
return HT_LAZY(_backgroundImageView, ({UIImageView *view = [UIImageView new]; [self.contentView addSubview:view]; view;
}));
}
这个object = object ?: assignment 是三目运算符吗?前面又不像是条件表达式,还有view;是啥意思?能帮忙解释一下吗?非常感谢!
BinBear commented
@lvxiangan object = object ?: assignment这个就是三目,只不过是三目的两元使用,等价于object = object ? object : assignment。至于{
UIImageView *view = [UIImageView new];
[self.contentView addSubview:view];
view;
}是一个内联复合表达式,是gcc对c的扩展,被clang继承。
RETURN_VALUE_RECEIVER = {(
// 其他操作
RETURN_VALUE; // 返回值
)};
lvxiangan commented
感谢及时回复!楼主威武!