无法将“Int”类型的值转换为预期的参数类型“Range<String.Index>

时间:2021-07-08 07:02:37

标签: swift function

尝试在 Swift Spritekit 中创建一个函数,如下所示:

func card_vals(card_value_set: [Int], card_set: [String]) {
        var card_value_set = card_value_set
        var card_set = card_set
        for i in card_set {
            var j = Int(i[0])
                card_value_set.append(j)
            }
    }
 

简单来说,该函数取一个card_set,看起来像["3C", "4D"],这是一个Str列表,而card_value_set应该看起来像[3,4],这是一个Int列表。 但是,我收到以下错误:

cannot convert value of type 'Int' to expected argument type 'Range<String.Index>

是否有助于消除此错误?

谢谢

1 个答案:

答案 0 :(得分:0)

你需要用字符串包裹

project_id = "${data.azuredevops_project.project.id}" 返回字符,并且没有用于接受字符类型的 Int 类型初始化器。

i[0] 

或者你也可以这样做

func card_vals(card_value_set: [Int], card_set: [String]) {
    var card_value_set = card_value_set
    var card_set = card_set
    for i in card_set {
        if let first = i.first, let intData = Int(String(first)) {
            card_value_set.append(intData)
        }
    }
}