• Go切片的操作


     1 package main
     2 
     3 import "fmt"
     4 
     5 //切片的操作
     6 
     7 func main() {
     8 
     9     //创建slice
    10     var s []int  //zero value for slice is nil
    11 
    12     for i := 0; i < 10; i++ {
    13         s = append(s, 2 * i + 1)
    14     }
    15     fmt.Println(s)  //[1 3 5 7 9 11 13 15 17 19]
    16 
    17     s1 := []int{2, 4, 6, 8}
    18     fmt.Println(s1)  //[2 4 6 8]
    19     fmt.Printf("cap:%d
    ", cap(s1)) //cap:4
    20 
    21     s2 := make( []int, 16)
    22     fmt.Println(s2)  //[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
    23     fmt.Printf("cap:%d
    ", cap(s2))  //cap:16
    24 
    25     s3 := make( []int, 10, 32)  //32设置的是cap值
    26     fmt.Println(s3)   //[0 0 0 0 0 0 0 0 0 0]
    27     fmt.Printf("cap:%d
    ", cap(s3))  //cap:32
    28 
    29     //复制slice
    30     copy(s2, s1)
    31     fmt.Println(s2,len(s2), cap(s2))  //[2 4 6 8 0 0 0 0 0 0 0 0 0 0 0 0] 16 16
    32 
    33     //删除slice中的元素
    34     s2 = append( s2[:3], s2[4:]...)
    35     fmt.Println(s2, len(s2), cap(s2))  //[2 4 6 0 0 0 0 0 0 0 0 0 0 0 0] 15 16
    36 
    37     front := s2[0]
    38     s2 = s2[1:]
    39     fmt.Println(front)  //2
    40     fmt.Println(s2, len(s2), cap(s2))    //[4 6 0 0 0 0 0 0 0 0 0 0 0 0] 14 15
    41 
    42     tail := s2[len(s2) - 1]
    43     s2 = s2[: len(s2) - 1]
    44     fmt.Println(tail)  //0
    45     fmt.Println(s2, len(s2), cap(s2))   //[4 6 0 0 0 0 0 0 0 0 0 0 0]  13 15
    46 
    47 }
  • 相关阅读:
    nginx 相关命令
    uni-app跨域解决
    vue-cli3.0的项目搭建
    vue.js
    Flex布局
    javascript 数组排重
    IE的hack问题浅谈
    div自身高度、屏幕高度
    bootstrap轮播和百叶窗
    面向对象
  • 原文地址:https://www.cnblogs.com/yuxiaoba/p/9345804.html
一二三 - 开发者的网上家园