我一直在阅读有关可可一些电子书,所以我可以学到更多,但我没有那么清楚这是什么类型的“如果”的意思是:这种“if”是什么意思?
if(!something)
if(something)
我假设:
if (something !=nil)
意味着如果某件事不存在,对吗?
谢谢:)
我一直在阅读有关可可一些电子书,所以我可以学到更多,但我没有那么清楚这是什么类型的“如果”的意思是:这种“if”是什么意思?
if(!something)
if(something)
我假设:
if (something !=nil)
意味着如果某件事不存在,对吗?
谢谢:)
在C一切未等于NULL
或0
被认为是true
。
因此
if (!something)
相同
if (!(something != nil))
并且因此相同
if (something == nil)
在Objective-C的对象的情况下(如nil
基本上NULL
)。
所以if (something)
基本上是if (something != nil)
的短手。
和if (!something)
基本上是if (something == nil)
的简称。
对于非Objective-C指针,您可以用NULL
替换nil
。 (nil
或多或少仅语法糖反正。)
还可以使用此,以检查是否一个整数是未等于0
:
这样的条件if ([myArray count])
是true
除非myArray
是空的。
假设东西是一个指向NSObject的指针。
if(something)
这将返回YES,如果事情是一个非空指针
if(!something)
这将返回YES,如果事情是零。这在这种情况下,因为something
是零,而!
(未操作)反相,成为真正的,
if(something)
相同if(something != nil)
。但我认识的大多数程序员认为这是一种重言式,喜欢短一点的表达。
虽然我在这 - 你可能会看到这写为if(nil != something)
。其原因是,如果由于意外,你写=
而不是!=
这会引发一个错误,因为你不能将值设置为零,但如果它是相反的,并且你错误地写了条件,它会将某些东西的值设置为零,这可能不是你想要做的。
也谢谢! :D都非常有用! – pmerino 2011-05-28 14:06:08
谢天谢地,**叮** **这些天警告你后者。 :) – Regexident 2011-05-28 14:06:09
Mate - Clang现在或多或少地调试我的代码! – Abizern 2011-05-28 14:09:09
这是大多数基于C的语言的一般语法。你需要认识到的是,if语句会检查伪装中的表达式为false(零)或true(1或非零)。所以,当你说“if(something)”时,你基本上是问是否检查它是否为:1. true或false(对于布尔表达式); 2.零或非零(用于算术表达式); 3.空或有效地址(用于指针,字符串等)。
现在您需要记住“!”运算符用于否定表达式,即结果中的每个“0”位按位更改为“1”,反之亦然。所以,基本上你会检查结果的否定结果是否为真或非零。
简而言之,当“something”为true或非零时,您希望代码片段执行时使用“if(something)”。当你想要你的代码片段在“something”为false或零时执行时,你可以使用“if(!something)”。
大多数编程语言都有一个布尔数据类型:http://en.wikipedia.org/wiki/Boolean_data_type – 2011-05-28 13:58:31