gpt4 book ai didi

swift - "T?"和 "T??"有什么区别

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:18 25 4
gpt4 key购买 nike

我理解下面的代码...

var dic1: Dictionary<String, String> = ["key" : "value"]
var str1: String? = dic1["key"]// key is not found => nil => String?

但是我不能...

var dic2: Dictionary<String, String?> = ["key" : nil]
var str3: String?? = dic2["key"]// key is not found or set nil value => nil => why String??

String的必要性是什么??和字符串的区别?和字符串??。

最佳答案

String?String?? 的区别如下:

let s1 = Optional<String>()           // String?
let s2 = Optional<Optional<String>>() // String??

引用你的例子:

Dictionary下标 返回可选类型。因此,因为您在 dic2 中的值类型是 String?,您首先必须解包可选以确定该键的值是否存在,然后您必须解包您的字符串?

这里有一个例子来演示:

if let optionalStringValue = dic2["key"] {
// A value exists for 'key'.
if let unwrappedStringValue = optionalString {
// In Swift 1.2 you could combine these two if let statements.
}
}

关于swift - "T?"和 "T??"有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29560376/

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