NULL 、nil、 Nil 、[NSNull null] 、@ 整理

2024-01-26 21:18
文章标签 整理 null nil nsnull

本文主要是介绍NULL 、nil、 Nil 、[NSNull null] 、@ 整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以上是原来在网上找到的,介绍的很不错。

(1)NULL<--->0x0  空的基本类型,基本类型的指针指向为空
  int *a = NULL;
  NSLog(@"%p",a);//0x0
(2)nil<--->(null)  空的对象,对象的指针指向为空
  NSString *str = nil;
  NSLog(@"%@",str);//(null)
(3)Nil<--->(null)  空的类,类的指针指向为空
  Class someClass = [NSString class];
  someClass = Nil;
  NSLog(@"%@",someClass);//(null)
(4)[NSNull null]<---> <null> 集合对象无法包含nil作为其具体值,nil值用一个特定的对象NSNull来表示
  NSArray *arr = @[@"1",[NSNull null],@"3"];
  NSLog(@"%@",arr);/*
                    (
                    1,
                    "<null>",
                    3
                    )
                    */
    
  if ([NSNull null] == arr[1]) {
      NSLog(@"空");
  }else{
      NSLog(@"有");
  }//空
(5)@“” 对象存在,只是没有内容
  NSString *str1 = @"";
  NSLog(@"1%@2",str1);//12
    
(6)比较
  NSLog(@"NULL == %p  Nil == %p  nil == %p [NSNull null] == %p",NULL,Nil,nil,[NSNull null]);//NULL == 0x0  Nil == 0x0  nil == 0x0 [NSNull null] == 0xbce6c8
    
  if (NULL == nil && Nil == nil && NULL == Nil) {
      NSLog(@"相同");
  }else{
      NSLog(@"不相同");//Code will never be executed(代码永远不会被执行)
  }//相同
(7)关于[NSNull null]的赋值
  NSArray *arr11 = @[@"123",[NSNull null],@"456"];
  NSArray *arr22 = [NSArray arrayWithArray:arr11];
  NSLog(@"arr11 == %@  arr22 == %@",arr11,arr22);/*                                                 

arr11 == (
                                                    123,
                                                    "<null>",
                                                    456
                                                    )  
arr22 == (
                                                    123,
                                                    "<null>",
                                                    456
                                                    )
                                                    */

这篇关于NULL 、nil、 Nil 、[NSNull null] 、@ 整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648087

相关文章

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM