1.slice的curd
package arr
import "log"
type Slice struct {
A []int
}
/**
* slice指定位置插入
* @index 插入的位置
* @e 插入的字符
*/
func (s *Slice) Add_list(index, e int) []int {
if index > len(s.A) {
log.Fatal("index不能大于len")
}
//获取后面
copy_last := append([]int{}, s.A[index:]...)
//截取前面
front := append(s.A[:index], e)
rel := append(front, copy_last...)
return rel
}
/**
* find查找某一个元素,返回索引
* @e int
*/
func (s *Slice) Find(e int) (bool, int) {
for k, v := range s.A {
if v == e {
return true, k
}
}
return false, -1
}
/**
* del删除切片的指定位置
* @index int
*/
func (s *Slice) Del(index int) []int {
s.A = append(s.A[:index], s.A[index+1:]...)
return s.A
}
/**
* remove查询并删除
* @e int
*/
func (s *Slice) Remove(e int) ([]int, bool) {
_, rel_find := s.Find(e)
if rel_find == -1 {
return s.A, false
}
rel_remove := s.Del(rel_find)
return rel_remove, true
}
2.main的调用
package main
import (
"./arr"
"fmt"
)
func main() {
var a arr.Slice
a.A = []int{11, 33, 44, 55}
//插入
fmt.Println(a.Add_list(1, 88888))
//查询
fmt.Println(a.Find(88888))
//删除
fmt.Println(a.Del(1))
//查询并删除
fmt.Println(a.Remove(11))
}