当前位置: 首页 > news >正文

《Effective Objective-C 2.0 》 阅读笔记 item3

第3条:多用字面量语法,少用与之等价的方法

1. 字面数值

使用字面量能令代码更为简洁:

NSNumber *someNumber = @1;

 

*** 字面量语法的好处! ***

  • 令代码更为简洁。
  • 能够以NSNumber实例表示的所有数据类型(int、float、double、Bool和char)都可以使用字面量语法。
  • 字面量语法同样适用于算法表达式。

2. 字面量数组

*** 使用字面量数组的优势! ***

  • 写法简单,而且还利于操作数组。
  • 用字面量语法创建数组要注意,若数组元素对象中有nil,则会抛出异常。
  • 使用字面量语法更为安全(抛出异常令应用程序终止执行,通过异常可以更快地发现错误)。

3. 字面量字典

*** 使用字面量字典的优势! ***

  • 写法更简明,而且键出现在对象之前,理解起来较顺畅。
  • 与数组一样,用字面量语法创建字典时也有个问题:一旦有值为nil,便会抛出异常。
  • 字典也可以像数组的取下标操作那样访问某个键所对应的元素。

4. 可变数组与字典

如果数组与字典对象是可变的,那么久能通过下标修改其中的元素值。

5. 局限性

  • 除了NSString类之外,所创建出来的对象必须属于Foundation框架中的类才行。如果自定义了这些类的子类,则无法用字面量语法创建其对象。要想创建自定义子类的实例,必须采用“非字面量语法”。
    例如,NSArray、NSDictionary、NSNumber都是业已定型的“子族”,因此很少有人会从其中自定义子类;创建字符串时可以使用NSString自定义的子类,然而必须要修改编译器的选项才行。
  • 使用字面量语法创建出来的字符串、数组、字典对象都是不可变。若想要可变版本的对象,则需复制一份(需要调用mutableCopy方法,再创建出一个新的对象)。

要点

  • 应该使用字面量语法来创建字符串、数值、数组、字典。与创建此类对象的常规方法相比,这么做更加简明扼要。
  • 应该通过取下标操作来访问数组下标或字典中的键所对应的元素。
  • 用字面量语法创建数组或字典时,若值中有nil,则会抛出异常。因此,务必确保值里不含nil。

http://www.lryc.cn/news/45830.html

相关文章:

  • SSL/TLS 证书管理
  • supersqli(SQL注入流程及常用SQL语句)
  • 【数据结构】用Java实现一棵二叉树
  • 【面试】面试官问的几率较大的网络安全面试题
  • [Python] 循环语句
  • 计算机网络考试复习——第一章 1.5 1.6
  • 3.29 最小生成树算法
  • 计算机科班与培训开发编程的区别在哪里?
  • idea设置常用自设置快捷键及坐标
  • Vue 3.0 实例方法
  • 日撸 Java 三百行day1-10
  • Ubuntu Instant-ngp 训练自有数据集
  • k8s集群只一台节点,重启节点后命名空间找不到了
  • MarkDown示例
  • spring cloud 雪崩效应
  • Python 自动化指南(繁琐工作自动化)第二版:三、函数
  • c++多线程 1
  • STM32F103制作FlashDriver
  • springboot树形结构接口, 懒加载实现
  • java企业级信息系统开发学习笔记02初探spring——利用组件注解符精简spring配置文件
  • 用Python发送电子邮件?这也太丝滑了吧(21)
  • 分类预测 | MATLAB实现CNN-GRU-Attention多输入分类预测
  • C++提高编程(1)
  • day26 回溯算法的部分总结
  • 带你玩转Python爬虫(胆小者勿进)千万别做坏事·······
  • 【JavaScript 】严格模式,With关键字,测试框架介绍,assert
  • mybatis实现一个简单的CRUD功能的小案例(后端)编写流程
  • 腾讯云轻量应用服务器价格表(2023版)
  • 网络层IP协议和数据链路层
  • 零基础学习Java 03