数组和字典的小知识

iOS基础

最近出去面试的时候被问到了这个问题,回来之后觉得这个问题需要好好的思考一下,因此总结了几个和数组以及字典相关的知识点,目前暂未完成,有时间会陆续的完善!

1、前言

前几天出去面试一下,面试官问了一个问题

1
2
3
4
5
6
7
一个数组 使用下面两种方式获取数组中的第一个元素有什么区别

数组 Arr

1、arr.firstObject
2、arr[0]

当下,我只是回答了,当数组为空时,使用第一种方法获取数组的第一个元素不
会崩溃,使用第二种方法获取数据的时候会发生崩溃。但是具体的原因,的确不
怎么清楚,所以 回答的不怎么理想,回来之后总结一下关于这里的内容

2、官网解释

1
2
3
4
5
6
/// Returns the first element of `self`, or `nil` if `self` is empty.
///
/// - Complexity: O(1)
public var first: Self.Generator.Element? { get }


相较于直接使用objectAtIndex,其实是多加了一个判断

3、扩展

遇到这个问题,我又想到了数组的老搭档–>字典

icon

结果很明显,都不会报错,且取出的值均为null

4、其他

对于具体 为什么使用arr.firstObject不会报错,目前只能猜测为添加了一个判空操作