繁体   English   中英

在字典键值对中,如何解包值,其中值可以是不同类型的类型,到字符串

[英]In dictionary key value pair, how to unwrap value, where value can be different sorts of types, to String

Eureka 表单值返回可选值,因此我想在每个值中迭代并展开它们。 但是,这些值由 Double、Int、String 组成。 我如何将它们解包为字符串?

    let wrapped = self.formValues()

    var unwrapped = [String:Any]()

    for (k,v) in wrapped {
        unwrapped[k] = v as! String ?? ""
    }
    return unwrapped

我收到此错误:

    Could not cast value of type 'Swift.Double' (0x7fff879c1a10) to 'Swift.String' (0x7fff879c41c8).

代替

v as! String ?? ""

String(v)

我不确定您到底想要什么,但我认为您正在尝试将 [String: Any?] 转换为 [String: Any]

  let unwrapped: [String: Any] = wrapped.mapValues { $0 ?? "" }

或者

   let unwrapped: [String: String] = wrapped.mapValues { (value) -> String in
    guard let value = value as? LosslessStringConvertible  else {
        return ""
    }
    return "\(value)"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM