golang编程实练-熟悉数组常见操作
main.go:
package main
import (
"fmt"
"sort"
)
func main() {
// 固定数组
arr := [3]int{1, 2, 3}
println(arr[0])
// 动态数组
s := []int{1, 2, 3, 4, 5}
fmt.Println(s[:3]) // 输出: [1 2 3]
s2 := make([]int, 10, 100)
s2[0] = 1
// 获取数组长度,容量
fmt.Printf("s.len:%v, s.cap:%v\n", len(s), cap(s))
// 添加元素到数组
s2 = append(s2, 2)
// 数组排序 / 自定义排序
sort.Slice(s2, func(i, j int) bool {
return s2[i] > s2[j]
})
sort.Ints(s2)
// 数组遍历
for idx, v := range s2 {
fmt.Printf("idx:%v, v:%v\n", idx, v)
}
// 切片
s3 := s2[0:2]
println(len(s3))
// 多维数组
a := [3][4]int{
{0, 1, 2, 3}, /* 第一行索引为 0 */
{4, 5, 6, 7}, /* 第二行索引为 1 */
{8, 9, 10, 11}, /* 第三行索引为 2 */
}
println(a)
println("done.")
}
说明:
- 数组保存的是相同类型的对象,golang中常用的是切片实现动态数组
- 切片是引用类型,是底层数组的动态视图,具备灵活性和效率两方面的优势。
- 例子中展现了动态数组的常规操作。