当前位置:  开发笔记 > 编程语言 > 正文

什么!! 在Objective-C中表示

如何解决《什么!!在Objective-C中表示》经验,为你挑选了2个好方法。

我有这个代码:

- (BOOL)isConnected {
    return !!_sessionKey;
}

其中_sessionKey在前面定义为:

NSString* _sessionKey;

代码来自facebook-connect for iphone.

因为我通过查看其他人编写的代码来学习Objective-C.该!!在使用isConnection我的功能似乎没用,还是我失去了一些东西?它有什么作用?



1> Heath Hunnic..:

!!结果要么转换YESNO.

使用!!x是来自C的成语.这个表达式的结果是:

!!x == 0 什么时候 x == 0 // x is zero

!!x == 1 什么时候 x != 0 // x is non-zero

至少在C中,您可以使用任何非零表达式作为满足条件if ()或其他条件控制流的条件的值.然而,有时候很高兴知道"真正的价值"代表的1不仅仅是"非零".

在Objective-C中,YES被定义为1而不是"非零".因此,在Objective-C中,这个C语言变得更有用.

另一种方式:

!!x == NO 什么时候 x == NO

!!x == YES 什么时候 x != NO


到目前为止,似乎没有人明确指出:"!!"本身并不是一个运营商.这只是应用了两次的`!`运算符.

2> Benjamin Cox..:

这意味着"不是".

在这种情况下,第一个!可以解释为"不存在",所以它意味着(不存在sessionKey).

这基本上是一个简短的说法

return (_sessionKey != nil). 

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有