swift - Swift Int 相乘时出错

标签 swift multiplication

这里是新的 Swift 爱好者!我正在关注 Rey Wenderlich 的 Candy Crush tutorial将两个 Int 值相乘时会出现错误。我知道 Swift 是严格类型的,所以这是什么原因?我不允许在 Swift 中这样做吗?请注意我遇到问题的 error 注释。非常感谢任何正确方向的帮助!

class Array2D<T> {
  let columns: Int
  let rows: Int
  let array: Array<T>

  init(columns: Int, rows: Int) {
    self.columns = columns
    self.rows = rows
    array = Array<T?>(count: rows*columns, repeatedValue: nil)    // ERROR: could not find an overload for '*' that accepts the supplied arguments
  }

  subscript(column: Int, row: Int) -> T? {
    get {
        return array[row*columns + column]
    }
    set {
        array[row*columns + column] = newValue   // ERROR: could not find an overload for '*' that accepts the supplied arguments
    }
  }
}

最佳答案

将数组更改为 T? 类型。 在第一种情况下,您尝试将 T? 类型的数组分配给 T 类型的数组。在第二个例子中,您尝试将 T? 类型的 newValue 分配给 T 类型的数组元素。

更改数组的类型可以解决这两个问题。

关于swift - Swift Int 相乘时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24565189/

相关文章:

sql - 如何使用watchkit实现watch-only数据库

ios - 如何在 Swift 中修改 SpriteKit 节点的大小?

Java 矩阵乘法 ArrayIndexOutOfBounds 异常

python - 将变量与数字相乘时遇到问题

64-bit - 如何在16位机器上进行64位乘法?

ios - SWrevealviewcontroller 应该在登录后在欢迎屏幕上可见

ios - 定义结构时的错误信息

ios - 以编程方式快速退出模拟器

bash - 数字与 shell 脚本的乘积

python - 如何将列表中的所有整数相乘