我有一个矩阵数组,如果 if 语句为真,我会尝试改变每个矩阵。例如,如果我有这个矩阵:
1 2 3
4 5 6
7 8 9
我想将每个奇数更改为 0。这就是我所拥有的:
func main() {
matrices := createMatrix() <-- returns an array of matrices.
for _, matrix := range matrices {
removeOdds(matrix)
}
}
func removeOdds(mat [][]int) {
for i := 0; i < len(mat); i++ {
for j := 0; j < len(mat[i]); j++ {
if mat[i][j] % 2 != 0 {
mat[i][j] = 0
}
}
}
}
这是行不通的,因为矩阵没有被改变。我读到 Go 通过值而不是引用传递数组,所以我尝试使用指针。但是,当我在 removeOdds 更改后打印矩阵时,我得到了原始矩阵。
这是我写的:
func main() {
matrices := createMatrix() <-- returns an array of matrices.
for _, matrix := range matrices {
removeOdds(&matrix)
}
}
func removeOdds(mat *[][]int) {
for i := 0; i < len(*mat); i++ {
for j := 0; j < len((*mat)[i]); j++ {
if (*mat)[i][j] % 2 != 0 {
(*mat)[i][j] = 0
}
}
}
}
守候你守候我
慕无忌1623718
相关分类