gpt4 book ai didi

ios - ios swift中的 'var contacts = [details]()'和 'var contacts:[details]?'有什么区别

转载 作者:行者123 更新时间:2023-11-28 05:27:48 28 4
gpt4 key购买 nike

我使用 var contacts:[details] 编写代码? = nil 我遇到了无法访问 contacts?.count 的问题,我不得不在任何地方使用可选值。例如 contacts[indexPath.row]?.firstname

但是当我使用 var contacts = [details]() 时,我不必在任何地方使用 to optionals。我可以直接使用 contacts.countcontacts[indexPath.row].firstname

以上两者之间有什么区别我们不需要使用即使数组为空也是如此

此外,使用 var contacts:[details]? 对我不起作用。

最佳答案

第一个初始化一个数组(详细信息类型)并给你一个空数组,而第二个只是声明一个变量(可选),它可以是详细信息类型

可选项

var 联系人:详细信息?

是一个可选变量(当不是'nil'时可以是类型details)

因此,无论何时您尝试访问可选变量,Swift 都在使用可选链,您必须输入 ?

编辑

I am not understanding where do we put ? and where do we not put it

来自 Swift's Doc

You specify optional chaining by placing a question mark (?) after the optional value on which you wish to call a property, method or subscript if the optional is non-nil. This is very similar to placing an exclamation mark (!) after an optional value to force the unwrapping of its value. The main difference is that optional chaining fails gracefully when the optional is nil, whereas forced unwrapping triggers a runtime error when the optional is nil.

因此,当您想要解包变量并调用其属性时,您可以放置​​ ?

关于ios - ios swift中的 'var contacts = [details]()'和 'var contacts:[details]?'有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30420506/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com