0
点赞
收藏
分享

微信扫一扫

Go:关于结构体与方法的一个经典的综合用法

新鲜小饼干 2022-01-18 阅读 65
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()

}

输出结果:

 

举报

相关推荐

0 条评论