簡體   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