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