gpt4 book ai didi

swift - 问号是必须的吗?

转载 作者:行者123 更新时间:2023-11-28 10:13:58 25 4
gpt4 key购买 nike

我正在审查一位前同事的代码,当我发现这个时:

if task != nil {
// why is "?" here?
task?.cancel()
task = nil
}

task 被声明为可选的。

我假设 task 不能再是 nil 了。那么开发商为什么要打上问号呢?我不能插入感叹号吗?

最佳答案

由于编译器提示,? 可能是由编译器而不是您的同事放置的。

相反,您可以使用 if let 语句,如下所示:

if let task2 = task {
task2.cancel()
task = nil
}

task 正在调用cancel() 所以可能任务是nil,这里我们通过通知编译器? 对于任务,如果编译器将得到 nil,它会安静地运行而不会崩溃。

关于swift - 问号是必须的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000245/

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