将上下左右四个方向移动写为结构体,通过range使移动代码简洁化 var dirs = []struct{ x, y int }{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}for _, d := range dirs { nx, ny := x+d.x, y+d.y if 0 <= nx && nx < m && 0 <= ny && ny < n && board[nx][ny] != '#' { dfs(node, nx, ny) } }