Go语言编程入门:数组和切片
数组
一维数组
定义一维数组的语法是:
arr := [元素个数]元素类型{元素列表}
示例:定义和遍历一维数组
package main
import "fmt"
func main() {
	arr := [3]int{1, 2, 3}
	for _, v := range arr {
		fmt.Println(v)
	}
}
二维数组
定义二维数组的语法是:
arr := [外层元素个数][内层元素个数]元素类型{元素列表}
示例:定义和遍历二维数组
package main
import "fmt"
func main() {
	arr := [3][3]int{
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9},
	}
	for _, v := range arr {
		for _, vv := range v {
			fmt.Print(vv, "\t")
		}
		fmt.Print("\n")
	}
}
切片
切片的定义
切片是基于数组的一种动态数据类型,能够动态的修改其长度,非常的灵活。
示例:创建一维和二维的切片
package main
import "fmt"
func main() {
	// 一维切片
	arr1 := []int{1, 2, 3, 4}
	for _, v := range arr1 {
		fmt.Println(v)
	}
	// 二维切片
	arr := [][]int{
		{1, 2, 3},
		{4, 5, 6},
		{7, 8, 9},
	}
	for _, v := range arr {
		for _, vv := range v {
			fmt.Print(vv, "\t")
		}
		fmt.Print("\n")
	}
}
切片增删改查
切片是Go语言中非常常用的一种数据结构,掌握其常用的增删改查方法非常有必要。
示例:切片的增删改查
package main
import "fmt"
func main() {
	// 定义切片
	var arr []string
	// 添加
	arr = append(arr, "a")
	arr = append(arr, "b", "c")
	fmt.Println(arr)
	// 删除
	index := 1
	arr = append(arr[:index], arr[index+1:]...)
	fmt.Println(arr)
	// 修改
	arr[index] = "cc"
	fmt.Println(arr)
	// 查询
	fmt.Println(arr[0])
}
切片的复制
示例代码1:使用append方法
package main
import "fmt"
func main() {
	arr := []string{"a", "b", "C"}
	// 复制
	var arr1 []string
	arr1 = append(arr1, arr...)
	fmt.Println(arr1)
	fmt.Println(arr)
}
示例代码2:使用copy方法
package main
import "fmt"
func main() {
	arr := []string{"a", "b", "C"}
	// 复制
	var arr1 = make([]string, len(arr))
	copy(arr1, arr)
	fmt.Println(arr1)
	fmt.Println(arr)
}
切片的排序
示例1:整数切片的排序
package main
import (
	"fmt"
	"sort"
)
func main() {
	arr := []int{33, -11, 11, 22}
	fmt.Println(arr)
	// 排序
	sort.Ints(arr)
	fmt.Println(arr)
}
示例代码2:自定义类型排序
package main
import (
	"fmt"
	"sort"
)
type Person struct {
	Name string
	Age  int
}
func main() {
	arr := []Person{
		{"张三", 22},
		{"李四", 21},
		{"王五", 23},
	}
	fmt.Println(arr)
	// 排序:根据年龄降序
	sort.Slice(arr, func(i, j int) bool {
		return arr[i].Age > arr[j].Age
	})
	fmt.Println(arr)
}
            
        THE END
    
        
        





