package main
import (
"fmt"
)
type block struct {
rect [3][3]int
}
//与结构体绑定的转置方法
func (rectangle *block) transpose() {
for i := 0; i < len(rectangle.rect); i ++ {
for j := 0; j < len(rectangle.rect[i]); j ++ {
if i == j {
break
} else {
tmp := rectangle.rect[i][j] //临时变量
rectangle.rect[i][j] = rectangle.rect[j][i]
rectangle.rect[j][i]= tmp
}
}
}
//重新遍历结构体中的数组,以转置后的矩形输出
for _,v1 := range (rectangle.rect) {
println()
for _,v2 := range (v1) {
fmt.Print(v2," ")
}
}
println()
}
func main() {
var myRect block
//对结构体内的数组赋值,并以矩形输出
for i := 0; i < len(myRect.rect); i ++{
for j := 0; j < len(myRect.rect[i]); j++ {
myRect.rect[i][j] = 3 * i + (j + 1)
fmt.Print(myRect.rect[i][j]," ")
}
println()
}
//调用转置的方法
(&myRect).transpose()
}
输出结果: