go菜鸟:请各位大佬指点,代码哪里错了

zyla · 2022-04-26 11:27:36 · 2169 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2022-04-26 11:27:36 的主题,其中的信息可能已经有所发展或是发生改变。

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]


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2169 次点击  
加入收藏 微博
4 回复  |  直到 2022-04-26 22:38:04
qiaoshuai951123
qiaoshuai951123 · #1 · 3年之前
g[row][columns] = digit

这一行代码错了: 你的形参是:column,但是你用成 初始变量的columns 了,所以g的长度溢出了

shunuanwei
shunuanwei · #2 · 3年之前

是的,楼上正解 {{image.png(uploading...)}}

shunuanwei
shunuanwei · #3 · 3年之前

1.png

楼上正解

Skysolderone
Skysolderone · #4 · 3年之前

这种要自己注意锕

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传