接口作为参数。这怎么可能?
https://github.com/skelterjohn/go.matrix/blob/go1/matrix.go
这个包有这个接口
type MatrixRO interface {
Nil() bool
Rows() int
Cols() int
NumElements() int
GetSize() (int, int)
Get(i, j int) float64
Plus(MatrixRO) (Matrix, error)
Minus(MatrixRO) (Matrix, error)
Times(MatrixRO) (Matrix, error)
Det() float64
Trace() float64
String() string
DenseMatrix() *DenseMatrix
SparseMatrix() *SparseMatrix
}
接口只有方法。不是数据结构。那么 Plus(MatrixRO) 怎么接收接口作为参数呢?即使MatrixRO里面没有任何数据,如何操作plus?
该函数还接收
func String(A MatrixRO) string {
MatrixRO 作为参数。
怎么可能?是因为线路
DenseMatrix() *DenseMatrix
SparseMatrix() *SparseMatrix
? 如果它需要嵌入一些东西,不应该像下面这样吗?
DenseMatrix
SparseMatrix
ps DenseMatrix 和 SparseMatrix 结构定义如下:
type DenseMatrix struct {
matrix
elements []float64
step int
}
哆啦的时光机
相关分类