类下标不能调用非函数类型的值

时间:2017-01-25 23:21:33

标签: swift swift3

我正在尝试在类构造上实现下标功能。该课程的非虔诚代码已被删除。

class Grid {

    var nodes: [[Node]]? = nil

    subscript(row:Int, column:Int) -> Node {

        get {
            return self.nodes[row][column]
        }
    }

}

let grid = Grid()
let node = grid(row:0, column:0)

代码的最后一行显示以下问题:

  

“无法调用非函数类型'Grid'的值”

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用方括号作为下标。这适用于操场:

class Grid {
  var nodes: [[Int]] = [[1],[2],[3]]

  subscript(row: Int, column: Int) -> Int {
    get {
      return self.nodes[row][column]
    }
  }
}

let grid = Grid()
let node = grid[0, 0]  // node == 1