代码示例
package main
import (
"errors"
"fmt"
)
// arr 数组
var arr []int = []int{1, 2, 3, 4, 5, 6, 0}
func main() {
fmt.Println("数组操作演示")
item := get(1)
fmt.Printf("查看下标为%d 数组元素 %d\n", 1, item)
err := update(2, 10)
if err == nil {
fmt.Println("更新后结果", arr)
} else {
fmt.Println("更新失败")
}
insertTail(99)
fmt.Println("尾部插入元素完成", arr)
insertMiddle(2, 100)
fmt.Println("中间插入元素完成", arr)
del(2)
fmt.Println("删除元素完成", arr)
}
// get 获取数组元素
func get(i int) int {
return arr[i]
}
// update 更新元素
// i 下标
// item 更新元素
func update(i, item int) error {
len := len(arr)
if i > len-1 {
return errors.New("超出数组长度")
}
arr[i] = item
return nil
}
// 两倍扩容
func enlargeCapacity() {
len := len(arr)
var arrNew = make([]int, len*2)
for i, v := range arr {
arrNew[i] = v
}
arr = arrNew
}
// insertTail 插入尾部
// item 插入元素
func insertTail(item int) {
len := len(arr)
arr[len-1] = item
}
// insertMiddle 中间插入
// index 插入位置
// item 插入元素
func insertMiddle(index, item int) {
// 数组长度
enlargeCapacity()
for i := len(arr) - 1; i >= index; i-- {
arr[i] = arr[i-1]
}
arr[index] = item
}
// del 删除元素
// index 需要删除的下标
func del(index int) {
len := len(arr)
for i := index; i < len; i++ {
arr[i-1] = arr[i]
}
}