gpt4 book ai didi

ios - 用可选的问号赋值

转载 作者:行者123 更新时间:2023-12-03 23:39:33 25 4
gpt4 key购买 nike

我目前正在从基础学习 Swift。现在我在选择选项,我试图理解这个案例:

var text: String? = nil

text? = "some text"
如果我们用问号赋值会发生什么?我不明白为什么 text 的值是 nil .你能解释一下分配 text = "some text" 之间有什么区别吗?和 text? = "some text" ?

最佳答案

你感到惊讶是对的。 text? =意思是“如果 textnil 不执行分配。”
您偶然发现了一个非常晦涩的语言功能。见 https://ericasadun.com/2017/01/25/pretty-much-every-way-to-assign-optionals/
(正如她所说的,你可以用零手的手指数出你真正像这样说话的次数,因为谁会想只在左值已经非零的情况下才赋值?)
注意 我更喜欢将其视为可选链接的零长度变体。能够说例如非常有用

self.navigationController?.hidesBarsOnTap = true
意思是,如果 self.navigationControllernil , fuhgeddaboudit。好吧,您的用例是它的一种变体,问号后没有任何内容。大多数人不知道如果链中的最后一个对象是 Optional,则链可以以问号结尾。 f 中的表达式都是合法的:
class C {
struct T {
var text : String?
}
var t : T?
func f() {
self.t?.text = "howdy"
self.t? = T()
self.t?.text? = "howdy"
}
}
但只有第一个, self.t?.text = ,在现实生活中很常见。

关于ios - 用可选的问号赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66538806/

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