一個 GCC 非常模糊的特性,以及 Clang 也有的特性是,代碼塊如果在閉合的圓括號內的話,會返回最后語句的值
~~~
NSURL *url = ({
NSString *urlString = [NSString stringWithFormat:@"%@/%@", baseURLString, endpoint];
[NSURL URLWithString:urlString];
});
~~~
這個特性非常適合組織小塊的代碼,通常是設置一個類。他給了讀者一個重要的入口并且減少相關干擾,能讓讀者聚焦于關鍵的變量和函數中。此外,這個方法有一個優點,所有的變量都在代碼塊中,也就是只在代碼塊的區域中有效,這意味著可以減少對其他作用域的命名污染。