fix some bug and add cap method to array
This commit is contained in:
@@ -23,6 +23,8 @@ type ArrayN struct {
|
||||
|
||||
dimN int
|
||||
data *Node // []*Node
|
||||
|
||||
cap int
|
||||
}
|
||||
|
||||
func New() *ArrayN {
|
||||
@@ -40,6 +42,10 @@ func NewWithCap(dims ...int) *ArrayN {
|
||||
arr.product[i] = pvalue
|
||||
}
|
||||
// arr.data = make([]*Node, arr.dims[0], arr.dims[0])
|
||||
arr.cap = 1
|
||||
for _, d := range arr.dims {
|
||||
arr.cap *= d
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
@@ -107,6 +113,10 @@ func (arr *ArrayN) set(curDim int, curidx int, pdata **Node, parent *Node) (*Nod
|
||||
return arr.set(curDim-1, nidx, &cur.data.([]*Node)[dimindex], cur)
|
||||
}
|
||||
|
||||
func (arr *ArrayN) Cap() int {
|
||||
return arr.cap
|
||||
}
|
||||
|
||||
func (arr *ArrayN) Grow(size int) {
|
||||
arr.dims[0] += size
|
||||
|
||||
@@ -121,6 +131,11 @@ func (arr *ArrayN) Grow(size int) {
|
||||
newData := make([]*Node, arr.dims[0], arr.dims[0])
|
||||
copy(newData, tempdata)
|
||||
arr.data.data = newData
|
||||
|
||||
arr.cap = 1
|
||||
for _, d := range arr.dims {
|
||||
arr.cap *= d
|
||||
}
|
||||
}
|
||||
|
||||
func (arr *ArrayN) Set(idx int, value interface{}) {
|
||||
|
||||
Reference in New Issue
Block a user