接口作为参数。这怎么可能?
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
}