我正在查看第三方的一些源代码,并且反复看到对我来说新的语法。基本上他们用逗号而不是分号分隔语句。它可以编译并运行,但我不明白它在做什么。看起来是这样
if(url)[url release], url = nil;
有时他们也会在不使用 if 的情况下使用它
[url release], url = nil;
这里发生了什么?
与 C 和 C++ 中一样,逗号运算符计算左侧的内容,然后计算右侧的内容;表达式的整体值是右侧的值。基本上,这让单个表达式可以做两件事(左侧的一件事可能是为了副作用,例如方法调用或赋值)。是的,该语法与函数调用和变量声明中使用的语法有些不明确。
我更喜欢尽可能使用包含多个语句的诚实块。更长,但最终更干净。调试起来也比较容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)