我刚刚在另一个问题中看到了这一点,并认为逗号一定是错别字
[controller release], controller = nil;
我使用的是 ARC,所以没有使用 release
,但我自己用以下代码对其进行了测试,发现它编译并运行良好。
NSObject *a = [NSObject new];
[a copy], a=nil;
我的印象是逗号仅用于分隔列表和相同类型的多个分配:
NSArray *a = @[@"1", @"two", /*etc*/];
int a, b, c, d;
实际问题:
它是否像:逗号可用于分隔命令一样简单?还有其他规则吗?
号运算符是一种 C 语言结构。
来自维基百科:
在 C 和C++编程语言中,逗号运算符 (由令牌表示)是一个二进制运算符,用于计算其 第一个操作数并丢弃结果,然后计算第二个操作数 操作数并返回此值(和类型)。逗号运算符具有 任何 C 运算符的最低优先级,并充当序列点。这 逗号令牌作为运算符的使用不同于其在 函数调用和定义、变量声明、枚举 声明和类似的构造,其中它充当分隔符。
在您的代码中,逗号用作分号的替换。如果在示例中使用 ,
或 ;
,则没有区别。
有关详细信息,请参阅此问题:在 C 和 C++ 中使用逗号而不是分号的效果