我正在寻找来自第三方的一些源代码,并且我反复看到一种对我来说不熟悉的语法.基本上他们用逗号分隔语句而不是分号.它编译和工作,但我不明白它在做什么.看起来是这样的
if(url)[url release], url = nil;
Run Code Online (Sandbox Code Playgroud)
并且他们也有时使用它
[url release], url = nil;
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
Don*_*ows 16
与在C和C++中一样,逗号运算符在左侧计算事物,然后在右侧计算事物; 表达式的总值是右侧的值.基本上,这允许单个表达式做两件事(左侧的那个可能是用于副作用,例如方法调用或赋值).是的,语法与函数调用和变量声明中使用的语法有些模糊.
我更喜欢在可能的情况下使用包含多个语句的诚实块.更长,但最终更清洁.更容易调试.
归档时间: |
|
查看次数: |
2535 次 |
最近记录: |