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

综合练习:编写一个方法使得给定的一个二维数组(3 X 3) ,并赋值,再转置。

即:

1 2 3             1 4 7 

4 5 6   ==>    2 5 8 

7 8 9             3 6 9 

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()

}

输出结果:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值