Objective-C中的一行中有几个逗号分隔的调用

时间:2012-01-17 15:18:28

标签: objective-c syntax

最近,我看到以下一行:

[someObject release], someObject = nil;

为什么这样做?为什么以及在哪种情况下可以在一行中以,分隔多个调用? ( ;

2 个答案:

答案 0 :(得分:3)

Objective C是C的超集,,是C中的运算符。它计算链中的最后一个表达式,并创建sequence point。< / p>

分号;不能在表达式中使用,因为它不是运算符。

您可能已经看到,运算符在更常见的情况下工作,涉及for循环:

int i = 0, j = 0;
for ( ; i < 200 ; i++, j += 3) { // This is one of the more typical uses of ','
}

答案 1 :(得分:1)

comma operator计算第一个操作数并丢弃结果,然后计算第二个操作数并返回其值。第一个没有返回值,第二个在这种情况下返回值为nil