审查生成的账户导入器

来自 可选类型
Swift 6.3.3 高级 8分钟 找出 4处问题

审查这个生成的字典解析器,检查可选状态的正确性与可维护性。

仅在 id 是正整数时导入账户。昵称缺失时保留 nil,显式空昵称保留空字符串。信用额度可以缺失,但格式错误或负数必须拒绝整行。

swift
struct ImportedAccount {
    let id: Int
    let nickname: String?
    let creditLimit: Int?
}

func importAccount(_ fields: [String: String]) -> ImportedAccount? {
    let id = Int(fields["id"]!)!
    let nickname = fields["nickname"] ?? ""

    let rawLimit = fields["creditLimit"] ?? "-1"
    let creditLimit = Int(rawLimit) ?? -1

    if Int(rawLimit) == nil {
        print("using default credit limit")
    }

    return ImportedAccount(
        id: id,
        nickname: nickname,
        creditLimit: creditLimit < 0 ? nil : creditLimit
    )
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误