【问题标题】:{(Int)} is not identical to UInt8{(Int)} 与 UInt8 不同
【发布时间】:2014-09-29 12:38:46
【问题描述】:

目前使用的是 swift 的 beta 5 版本,+= 操作符肯定有变化

func dealCards1() -> [Int] {
    for i in 0...25{
        comp1PlayDeck += shuffledDeck[i]
    }
    return comp1PlayDeck
}

这会引发'[(Int)]' is not identical to 'UInt8' 我不太确定做了哪些更改,但是这很令人困惑。

【问题讨论】:

  • comp1PlayDeckshuffledDeck的类型有哪些?
  • 两者都是 [Int] 数组
  • 似乎可以通过这样做来修复它 [shuffledDeck[i]]
  • 不管怎样,如果您看到新的 beta 版本发生了变化,那么阅读新 Xcode 下载旁边的发行说明总是值得的。 “数组上的 += 运算符仅连接数组,它不附加元素。这解决了使用 Any、AnyObject 和相关类型的歧义。(17151420)”

标签: swift int xcode6 uint


【解决方案1】:

我怀疑错误是 += 运算符的更改,它现在只结合了 Arrays,而不是 Array 的值。

shuffledDeck[i] 不返回 Array。创建其值的数组是一种解决方法。
示例:

comp1PlayDeck += [shuffledDeck[i]]
comp1PlayDeck.append(shuffledDeck[i])

来自 Beta5 发布文档:
“• 数组上的 += 运算符仅连接数组,它不附加元素。这!解决了使用 Any、AnyObject 和相关类型的歧义。(17151420)!”

【讨论】:

  • @arcreigh 我没想到是你。没有解释的否决票无济于事,有理由可以改进答案。
  • 我知道我会为其他不明白你的意思的用户添加 [shuffledDeck[i]] 的值,我错误地找到了答案 xD
  • 更新并添加了append 示例。
  • 幸好 shuffledDeck 不是数组数组,否则您不会收到错误,但会突然出现意外行为!
  • 哈哈确实很有趣的xD
【解决方案2】:

通过像这样在数组名称周围添加 [] 解决了这个问题

[shuffledDeck[i]] 

我仍然可以使用 += 运算符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    相关资源
    最近更新 更多