代码之家  ›  专栏  ›  技术社区  ›  kiran

如何在struct中编写条件

  •  0
  • kiran  · 技术社区  · 3 年前

    根据条件,如何为struct设置Dictionary-else-only Dictionary数组。

       struct Data {
            let id: String?
            let name: String?
            let subData:  Environment.Dev == "Dev_URL" ? [SubData]? : SubData?
        
            init(_ json: JSON) {
                id = json["id"].stringValue
                name = json["name"].stringValue
                subData =  Environment.Dev == "Dev_URL" ? json["sub_data"].arrayValue.map { SubData($0) } : SubData(json["sub_data"])
            }
        }
    

    //子数据结构

       struct SubData {
            let id: String?
            init(_ json: JSON) {
                id = json["id"].stringValue
       }
    }
    

    我的反应结构因环境变化而改变。

    如何为let subData[subData]设置结构数据,即dictionary else subData normal dictionary数组,基于Dev或other。

    1 回复  |  直到 3 年前
        1
  •  1
  •   Shehata Gamal    3 年前

    在这两种情况下,一种简单的方法可以使其成为数组,因为类型无法在运行时确定

    let subData:[SubData]?
    

    然后

    subData =  Environment.Dev == "Dev_URL"              
                ? json["sub_data"].arrayValue.map { SubData($0) }
                : [SubData(json["sub_data"])]
    

    你也可以改变你的回答 sub_data 在这两种情况下都是一个数组,所以在直线以上

    subData = json["sub_data"].arrayValue.map { SubData($0) }
    

    这样,您可以顺利地进行开发和发布