```
package main
import (
"fmt"
"errors"
"os"
)
const rows, columns = 9, 9
type Grid [rows][columns]int8
func main() {
var g Grid
err := g.Set(6,2,5)
if err != nil {
fmt.Println("A",err)
fmt.Printf("An error occurred: %v.\n", err)
os.Exit(1)
}
}
func (g *Grid) Set(row, column int, digit int8) error {
if !inBounds(row, column) {
return errors.New("out of bounds")
}
g[row][columns] = digit
return nil
}
func inBounds(row, column int) bool {
if row < 0 || row >= rows {
return false
}
if column < 0 || column >= columns{
return false
}
return true
}
```
错误:
#command-line-arguments
./a.go:26:10: invalid argument: array index 9 out of bounds [0:9]
![1.png](https://static.golangjob.cn/220426/c57172ac8270127f94e723d56be550ed.png)
楼上正解
#3
更多评论
```go
g[row][columns] = digit
```
这一行代码错了: 你的形参是:column,但是你用成 初始变量的columns 了,所以g的长度溢出了
#1