kiz*_*zx2 71 syntax objective-c
我在网上找到的大多数例子都写道:
if(x != nil)
// ...
Run Code Online (Sandbox Code Playgroud)
这有什么问题吗?
if(x)
// ...
Run Code Online (Sandbox Code Playgroud)
我在一个简单的程序中尝试了两个,但没有找到任何区别.
Ita*_*ber 124
在Objective-C中,nil
被定义为一个被调用的值__DARWIN_NULL
,它实质上是在if语句中0
或false
在if语句中.因此,写作
if (x == nil)
与写作if (!x)
和写作if (x != nil)
相同if (x)
(因为比较false
创建否定,并比较以true
保持条件相同).
您可以用任何一种方式编写代码,这实际上取决于您认为哪些代码更具可读性.我发现if (x)
更有意义,但这取决于你的风格.
这就像比较if (someCondition == true)
对if (someCondition)
.
这一切都取决于你,谁将会阅读代码.
编辑:正如Yuji正确提到的那样,由于Objective-C是C的超集,因此任何求值为0以外的值的条件都被认为是真的,因此,如果someCondition
在上面的例子中要求求整数值,比方说,-1,比较它true
会导致false
,并且不会评估if语句.需要注意的事情.
都
if (x != nil)
Run Code Online (Sandbox Code Playgroud)
和
if ( x )
Run Code Online (Sandbox Code Playgroud)
是等价的,所以选择你认为使你的代码更易读的变体(以及其他将阅读和支持你的代码的人)
归档时间: |
|
查看次数: |
37577 次 |
最近记录: |