求高手解释

今天发现一个代码的有趣写法

NSString *str = ({

    NSString *temp = @"123";

。。。。

    temp;

});

NSLog("%@",  str);

返回的是temp的值。

如何解释这样子的写法?

 

块的最后是temp,然后再包一层() 则类似于(temp)这样的返回值

疑问是:为何{}会返回最后一个表达式的结果

这里如果把()去掉则会很奇怪的报错 : Unexpected interface name 'NSString': expected expression

 

posted @ 2022-04-06 23:18  LCAC  阅读(37)  评论(0)    收藏  举报