无法将 'Int' 类型的值转换为预期的参数类型"范围<字符串.索引>



试图在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>

有什么帮助可以消除这个错误吗?

感谢

您需要使用字符串进行包装

i[0]返回字符,并且没有Int类型的初始值设定项用于接受字符类型。

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)
}
}
}

或者你也可以做这个

var j = Int(String(i[0])) ?? 0

相关内容

  • 没有找到相关文章

最新更新