关于{len(maze)-1, len(maze[0])-1}

来源:12-2 迷宫代码实现

慕移动9586716

2021-10-14

老师你好,我有点纠结:

steps := walk(maze, point{0,0}, point{len(maze)-1, len(maze[0])-1})

我们需要从左上角开始到右下角结束
里面的go{len(maze)-1, len(maze[0])-1}
在老师的例子中len(maze) 不应该等于6,len(mase)等于5嘛
他们都减一,是为什么?
我在我的代码中改成这样:

steps := walk(maze, point{0,0}, point{len(maze), len(maze[0])})

结果也一样
这是我的:


func main() {
	maze := ReadMaze("maze/maze.in")

	steps := walk(maze, point{0,0}, point{len(maze), len(maze[0])})

	for i := range steps{
		for j := range steps[i]{
			fmt.Printf("%3d " ,steps[i][j])
		}
		fmt.Println()
	}
    fmt.Println(len(maze))
	fmt.Println(len(maze[0]))

}

结果:

  0   0   4   5   6 
  1   2   3   0   7 
  2   0   4   0   8 
  0   0   0  10   9 
  0   0  12  11   0 
  0   0  13  12  13 
6
5

写回答

1回答

NotNullU

2021-10-14

这是一个二维的切片,第一个数是[0][0],能运行个人觉得是walk()函数里,end参数只参与到了break判断里面,然后后面for循环结束直接跳出了。


0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程