golang 数组和切片

来源:互联网 发布:php读取数据库 编辑:程序博客网 时间:2024/05/29 18:36
/**数组和切片*/package mainimport (    "fmt"    "reflect")var p = fmt.Printlnvar pf = fmt.Printffunc main() {    //初始化    strs := []string{"123", "456"}    //range遍历    for k, v := range strs {        pf("position[%d]:[%s]\n", k, v)    }    p(cap(strs)) //2    p(len(strs)) //2    str0 := [5]string{}    p(str0, len(str0)) //[    ] 5    str2 := [5]int{1, 2}    p(str2, len(str2)) //[1 2 0 0 0] 5    str3 := [5]int{1: 10, 4: 8}    p(str3) //[0 10 0 0 8]    //str4 := [5]int{1: 10, 5: 8} //array index 5 out of bounds [0:5]    str4 := [...]int{2: 1, 4: 3} //    p(str4, len(str4))           //[0 0 1 0 3] 5  最大索引决定长度    str5 := []int{2: 1, 4: 3}    //三个点或者不要点    p(str5, len(str5))           //[0 0 1 0 3] 5    str6 := []int{4: 1, 2: 3}    p(str6, len(str6)) //[0 0 3 0 1] 5    //赋值    str6[4] = 12    p(str6) //[0 0 3 0 12]    //for 遍历    for i := 0; i < len(str6); i++ {        pf("position[%d]:[%d]   ", i, str6[i])    }    p()    p(str6[0:])    str7 := append(str6, 12, 123) //append 为内建函数    p(str6, str7)                 //[0 0 3 0 12] [0 0 3 0 12 12 123]    p(cap(str6))                  //5    p(cap(str7))                  //10    p(len(str7))                  //7    //p(str7[7])    //index out of range    p(str7, str7[:], str7[0:], str7[:len(str7)])    //[0 0 3 0 12 12 123] [0 0 3 0 12 12 123] [0 0 3 0 12 12 123] [0 0 3 0 12 12 123]    p(str7[0:3], str7[:3], str7[3]) //[0 0 3] [0 0 3] 0    rv := reflect.ValueOf(str7) //进入疯狂的reflect世界    p(rv.Kind())                //slice    rv = reflect.ValueOf(strs)    p(rv.Kind()) //slice    rv = reflect.ValueOf(str0)    p(rv.Kind()) //array    rv = reflect.ValueOf(str2)    p(rv.Kind()) //array    rv = reflect.ValueOf(str3)    p(rv.Kind()) //array    rv = reflect.ValueOf(str4)    p(rv.Kind()) //array    rv = reflect.ValueOf(str5)    p(rv.Kind()) //slice    rv = reflect.ValueOf(str6)    p(rv.Kind()) //slice    // 使用内建方法make 创建一个切片    s := make([]int, 5)    p(s, cap(s), len(s)) //[0 0 0 0 0] 5 5    s2 := make([]int, 5, 10)    p(s2, cap(s2), len(s2)) //[0 0 0 0 0] 10 5}
0 0
原创粉丝点击