Swiftui字典有一个特性,即使用键访问返回的值始终是"optional“类型。例如,具有类型字符串键和类型字符串值的字典很难访问,因为每个返回值都是optional类型。
一个明显的需要是,在您试图将字典“x=myDictionarykey”的字符串赋给字符串变量x时,将其赋值。
这很棘手,因为字符串值总是以可选字符串的形式返回,通常标识为String?类型。
那么,如何将字典访问返回的字符串?类型值转换为可以赋值给普通字符串类型变量的普通字符串类型呢?
我猜问题在于没有办法确定键是否存在字典值。用于访问字典的键可以是任何东西,因此您必须以某种方式处理它。
发布于 2021-08-01 03:50:17
正如@jnpdx对这个SO问题的回答(How do you assign a String?-type object to a String-type variable?)中所描述的,至少有三种方法可以转换字符串?转换为字符串:
import SwiftUI
var x: Double? = 6.0
var a = 2.0
if x != nil {
a = x!
}
if let b = x {
a = x!
}
a = x ?? 0.0两个关键概念:
在上面的第一个方法中,"if x != nil“显式地检查以确保在执行闭包之前x不是nil。
在上面的第二个方法中,只要b不等于nil,"if let a= b“就会执行闭包。
在上面的第三种方法中,"nil-coalescing“操作符??是被雇佣的。如果为x=nil,则??之后的默认值被分配给一个。
上面的代码将在操场上运行。
除了上述三种方法之外,至少还有一种使用"guard let“的方法,但我不确定其语法。
我相信以上三种方法也适用于字符串以外的变量?和字符串。
https://stackoverflow.com/questions/67916352
复制相似问题