我使用var contacts:[details]? = nil
编写了代码,我遇到了无法访问contacts?.count
的问题,我不得不在任何地方使用选项。
例如contacts[indexPath.row]?.firstname
但是当我使用var contacts = [details]()
时,我不必在任何地方使用选项。我可以直接使用contacts.count
和contacts[indexPath.row].firstname
即使数组为空,我们也不需要使用?
,上述两者之间有什么区别
此外,使用var contacts:[details]?
对我不起作用。
答案 0 :(得分:2)
首先初始化一个数组(类型详细信息)并给出一个空数组,而第二个只声明一个变量(可选),它可以是详细信息类型
<强>选配强>
var contacts : details?
是一个可选变量(当不是&#39; nil&#39;时可以是类型细节)
因此,无论何时尝试访问可选变量,Swift都使用可选链接,您必须放置?
修改强>
我不明白我们把它放在哪里?我们不把它放在哪里
如果可选值为非零,则通过在要调用属性,方法或下标的可选值之后放置一个问号(?)来指定可选链接。这与在可选值之后放置感叹号(!)以强制展开其值非常相似。主要区别在于,当optional是nil时,可选链接正常失败,而当optional是nil时,强制解包会触发运行时错误。
所以当你想要解包变量并在其上调用一个属性时,你就放了?
。