一、概念不同
Nil:表示无值,任何变量在没有被赋值之前的值都为nil。
Null:是在计算中具有保留的值。
二、功能不同
Nil:用于区别其他任何值。
Null:用于指示指针不引用有效对象。
三、针对不同
Nil:针对对象,而空对象不是说不占用空间,相当于一个“洗白”,回到初始状态。
Null:针对指针,对对象指针和非对象指针都有效,Null不会占用空间。
扩展资料
Null的编码
在所有现代字符集中,空字符的代码点值为零。在大多数编码中,这被转换为具有零值的单个代码单元。例如在UTF-8中,它是一个零字节。
然而,在修改的UTF-8中,空字符被编码为两个字节:0xC0,0x80。这允许值为零的字节(现在不用于任何字符)用作字符串终结符。
参考资料
百度百科--nil
百度百科--Null
1、NULL具有通用性
NULL其实就是C\C++的用法,用来表示一个对象指针不指向任何对象,其值为0,当在对象指针为NULL的对象上调用方法或访问成员变量时,会抛异常。
2、nil与Nil的表示对象不同。
NIL -> Null-pointer to objective- c class。
NIL 特对于表示Object-C的Class类型对象为NULL,表示其对象指针不指向任何对象。
nil -> Null-pointer to objective- c object。
nil 特对于表示Object-C的除Class类型外的对象为NULL,表示其对象指针不指向任何对象。NSArray末用nil来表示结束。
因为在NSArray和NSDictionary中nil中有特殊的含义(表示列表结束),所以不能在集合中放入nil值。如要确实需要存储一个表示“什么都没有”的值,可以使用NSNull类。
3、NSNull用在不能使用nil的场合。
NSNull是一个类,它只有一个方法:+ (NSNull *) null;。
[NSNull null]用来在NSArray和NSDictionary中加入非nil(表示列表结束)的空值. [NSNull null]是一个对象,用来表示空,他用在不能使用nil的场合。
扩展资料:
nil与Nil可以简单的理解为Object-C自己搞的对objective- c的NULL表示,用来表示一个对象指针不指向任何对象。
但是当在对象指针为nil 或NIL的对象上调用方法或访问成员变量时,返回NO,不会抛异常,程序将继续执行下去。
发给nil对象的消息返回值取决于其方法的返回类型。如果返回方法返回某个指针类型(例如对象指针),则返回值是nil.表示安全地将消息传递给了nil对象-nil仅起着传递作用。如果返回方法是返回类型长度和指针类型相等或更小的int话,返回值是零。如果返回值是浮点类型或结构体的话,将得到某个未定义的结果。
nil的意思是零。
nil的英式发音和美式发音都是/n_l/。nil是名词,有无、零、人名、尼尔、尼的意思。
例句1:A person making zero rated supplies is making taxable supplies at a nil rate。任何人做出零税率的供应享受百分之零的应税应用品率。
例句2:Germany defeated Spain 3 goals to nil in this match。德国队在这场比赛中3比0战胜了西班牙队。
例句3:However, nil is an actual object。然而与之不同的是,nil是作为一个对象存在的。
例句4:My knowledge of the subject is practically nil。我在这方面的知识几乎等于零。
例句5:That football team lost the game three-nil。球队输了比赛,比分是三比零。
nil(计算机语言)。
nil表示无值,任何变量在没有被赋值之前的值都为nil,对于真假判断,只有nil与false、0表示假,其余均为真。
Objective-C, Swift, Ruby, Lua中的关键字,与C++里的NULL不同,NULL是一个宏定义,值为0,nil表示无值。
在Programming in Lua 程序设计第二版中原文是这样写的:
"nil是一种类型,它只有一个值nil,它的主要功能是用于区别其他任何值,就像之前所说的,一个全局变量在第一次赋值前的默认值就是nil,将nil赋予一个全局变量等同于删除它,Lua将nil用于表示一种“无效值(non-value)”的情况,即没有任何有效值的情况。"。
nil和exist意思相反。
nil表示的是“零分;零,无”,而exist表示的是“存在,实际上有;持续存在,生存”。一个表示无,一个表示有,所以意思是相反的。
短语:
nil ideal [数] 零理想;诣零理想。
Nil by Mouth 切勿吞食;无话可说。
nil-paid rights 未缴股款股权;未缴款供股权。
词语辨析:
exist,live,be这组词都有“存在”的意思,其区别是:
exist通常指可观察到的或众所周知的存在现象。
live多指有生命的东西的存在。指无生命事物时,强调可联想起生命的那些特点。
be指某时某地确存在的事物或现象,多与there连用。