You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将数组元素格式化为指定格式的订单字符串?

解决Swift中外卖订单数组转指定格式字符串的问题

问题分析

你当前的代码存在两个核心问题:

  • 变量名错误:代码中dict应为dictionary,直接导致编译报错
  • 元组数组无法直接拼接:compactMap返回的是[(String, String)]类型的元组数组,而joined方法仅适用于字符串数组,无法直接处理元组

修正后的代码

guard
    let defaults = UserDefaults.standard.data(forKey: "itemlist"),
    let savedItems = try? JSONDecoder().decode([Order].self, from: defaults)
else {
    return
}

// 将每个有效Order对象转换为"名称 价格"格式的字符串,同时过滤数据不完整的项
let orderItems = savedItems.compactMap { item in
    guard let name = item.name, let price = item.price else {
        return nil
    }
    return "\(name) \(price)"
}

// 拼接所有订单项为目标格式字符串
let orderString = orderItems.joined(separator: " ")
let order = "Заказ: \(orderString)"
print(order)

代码说明

  1. 安全处理可选值:用guard解包name和price,避免强制解包!引发的崩溃,同时过滤掉数据不完整的订单项
  2. 单条订单格式化:将每个有效订单项转换为"名称 价格"格式的独立字符串
  3. 整体拼接:通过joined(separator: " ")将所有格式化后的字符串连接成你需要的最终格式

执行后会输出:

Заказ: Пепперони 45см/500р. Деревенская 45см/520р.

内容的提问来源于stack exchange,提问作者devon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:01:17