matrix

package
v0.5.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2024 License: MIT Imports: 2 Imported by: 0

README

Matrix

Go doc

matrix 提供了一个简单的二维数组的实现

目录导航

列出了该 package 下所有的函数及类型定义,可通过目录导航进行快捷跳转 ❤️

展开 / 折叠目录导航

包级函数定义

函数名称 描述
NewMatrix 生成特定宽高的二维矩阵

类型定义

类型 名称 描述
STRUCT Matrix 二维矩阵

详情信息

func NewMatrix[T any](width int, height int) *Matrix[T]

生成特定宽高的二维矩阵

  • 虽然提供了通过x、y坐标的操作函数,但是建议无论如何使用pos进行处理
  • 该矩阵为XY,而非YX

Matrix STRUCT

二维矩阵

type Matrix[T any] struct {
	w int
	h int
	m []T
}

func (*Matrix) GetWidth() int

获取二维矩阵宽度


func (*Matrix) GetHeight() int

获取二维矩阵高度


func (*Matrix) GetWidth2Height() (width int, height int)

获取二维矩阵的宽度和高度


func (*Matrix) GetMatrix() [][]T

获取二维矩阵

  • 通常建议使用 GetMatrixWithPos 进行处理这样将拥有更高的效率

func (*Matrix) GetMatrixWithPos() []T

获取顺序的矩阵


func (*Matrix) Get(x int, y int) (value T)

获取特定坐标的内容


func (*Matrix) GetExist(x int, y int) (value T, exist bool)

获取特定坐标的内容,如果不存在则返回 false


func (*Matrix) GetWithPos(pos int) (value T)

获取特定坐标的内容


func (*Matrix) Set(x int, y int, data T)

设置特定坐标的内容


func (*Matrix) SetWithPos(pos int, data T)

设置特定坐标的内容


func (*Matrix) Swap(x1 int, y1 int, x2 int, y2 int)

交换两个位置的内容


func (*Matrix) SwapWithPos(pos1 int, pos2 int)

交换两个位置的内容


func (*Matrix) TrySwap(x1 int, y1 int, x2 int, y2 int, expressionHandle func (matrix *Matrix[T]) bool)

尝试交换两个位置的内容,交换后不满足表达式时进行撤销


func (*Matrix) TrySwapWithPos(pos1 int, pos2 int, expressionHandle func (matrix *Matrix[T]) bool)

尝试交换两个位置的内容,交换后不满足表达式时进行撤销


func (*Matrix) FillFull(generateHandle func (x int) T)

根据提供的生成器填充整个矩阵


func (*Matrix) FillFullWithPos(generateHandle func (pos int) T)

根据提供的生成器填充整个矩阵


Documentation

Overview

Package matrix 提供了一个简单的二维数组的实现

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Matrix

type Matrix[T any] struct {
	// contains filtered or unexported fields
}

Matrix 二维矩阵

func NewMatrix

func NewMatrix[T any](width, height int) *Matrix[T]

NewMatrix 生成特定宽高的二维矩阵

  • 虽然提供了通过x、y坐标的操作函数,但是建议无论如何使用pos进行处理
  • 该矩阵为XY,而非YX

func (*Matrix[T]) FillFull

func (slf *Matrix[T]) FillFull(generateHandle func(x, y int) T)

FillFull 根据提供的生成器填充整个矩阵

func (*Matrix[T]) FillFullWithPos

func (slf *Matrix[T]) FillFullWithPos(generateHandle func(pos int) T)

FillFullWithPos 根据提供的生成器填充整个矩阵

func (*Matrix[T]) Get

func (slf *Matrix[T]) Get(x, y int) (value T)

Get 获取特定坐标的内容

func (*Matrix[T]) GetExist added in v0.0.4

func (slf *Matrix[T]) GetExist(x, y int) (value T, exist bool)

GetExist 获取特定坐标的内容,如果不存在则返回 false

func (*Matrix[T]) GetHeight

func (slf *Matrix[T]) GetHeight() int

GetHeight 获取二维矩阵高度

func (*Matrix[T]) GetMatrix

func (slf *Matrix[T]) GetMatrix() [][]T

GetMatrix 获取二维矩阵

  • 通常建议使用 GetMatrixWithPos 进行处理这样将拥有更高的效率

func (*Matrix[T]) GetMatrixWithPos

func (slf *Matrix[T]) GetMatrixWithPos() []T

GetMatrixWithPos 获取顺序的矩阵

func (*Matrix[T]) GetWidth

func (slf *Matrix[T]) GetWidth() int

GetWidth 获取二维矩阵宽度

func (*Matrix[T]) GetWidth2Height

func (slf *Matrix[T]) GetWidth2Height() (width, height int)

GetWidth2Height 获取二维矩阵的宽度和高度

func (*Matrix[T]) GetWithPos

func (slf *Matrix[T]) GetWithPos(pos int) (value T)

GetWithPos 获取特定坐标的内容

func (*Matrix[T]) Set

func (slf *Matrix[T]) Set(x, y int, data T)

Set 设置特定坐标的内容

func (*Matrix[T]) SetWithPos

func (slf *Matrix[T]) SetWithPos(pos int, data T)

SetWithPos 设置特定坐标的内容

func (*Matrix[T]) Swap

func (slf *Matrix[T]) Swap(x1, y1, x2, y2 int)

Swap 交换两个位置的内容

func (*Matrix[T]) SwapWithPos

func (slf *Matrix[T]) SwapWithPos(pos1, pos2 int)

SwapWithPos 交换两个位置的内容

func (*Matrix[T]) TrySwap

func (slf *Matrix[T]) TrySwap(x1, y1, x2, y2 int, expressionHandle func(matrix *Matrix[T]) bool)

TrySwap 尝试交换两个位置的内容,交换后不满足表达式时进行撤销

func (*Matrix[T]) TrySwapWithPos

func (slf *Matrix[T]) TrySwapWithPos(pos1, pos2 int, expressionHandle func(matrix *Matrix[T]) bool)

TrySwapWithPos 尝试交换两个位置的内容,交换后不满足表达式时进行撤销

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL