quick list

This commit is contained in:
finley
2022-07-12 20:57:13 +08:00
parent ab0754e2a5
commit e6d958716d
12 changed files with 743 additions and 34 deletions

View File

@@ -0,0 +1,24 @@
package list
// Expected check whether given item is equals to expected value
type Expected func(a interface{}) bool
// Consumer traverses list.
// It receives index and value as params, returns true to continue traversal, while returns false to break
type Consumer func(i int, v interface{}) bool
type List interface {
Add(val interface{})
Get(index int) (val interface{})
Set(index int, val interface{})
Insert(index int, val interface{})
Remove(index int) (val interface{})
RemoveLast() (val interface{})
RemoveAllByVal(expected Expected) int
RemoveByVal(expected Expected, count int) int
ReverseRemoveByVal(expected Expected, count int) int
Len() int
ForEach(consumer Consumer)
Contains(expected Expected) bool
Range(start int, stop int) []interface{}
}