首页 > 其他分享 >切片

切片

时间:2022-08-28 16:46:37浏览次数:57  
标签:int fmt cap len 切片 numbers Println

数组

image-20220828160732755

package main

import "fmt"

func printArray(myArray [4]int) {
   //值拷贝

   for index, value := range myArray {
      fmt.Println("index = ", index, ", value = ", value)
   }

   myArray[0] = 111
}


func main() {
   //固定长度的数组
   var myArray1 [10]int

   myArray2 := [10]int{1,2,3,4}
   myArray3 := [4]int{11,22,33,44}

   //for i := 0; i < 10; i++ {
   for i := 0; i < len(myArray1); i++ {
      fmt.Println(myArray1[i])   
   }

   for index, value := range myArray2 {
      fmt.Println("index = ", index, ", value = ", value)
   }

   //查看数组的数据类型
   fmt.Printf("myArray1 types = %T\n", myArray1)
   fmt.Printf("myArray2 types = %T\n", myArray2)
   fmt.Printf("myArray3 types = %T\n", myArray3)

   printArray(myArray3)
   fmt.Println(" ------ ")
   for index, value := range myArray3 {
      fmt.Println("index = ", index, ", value = ", value)
   }
}

slice(动态数组)

package main

import "fmt"

func printArray1(myArray []int) {
   //引用传递
   // _ 表示匿名的变量
   for _, value := range myArray {
      fmt.Println("value = ", value)
   }

   myArray[0] = 100
}

func main() {
   myArray := []int{1,2,3,4,8} // 动态数组,切片 slice

   fmt.Printf("myArray type is %T\n", myArray)

   printArray1(myArray)

   fmt.Println(" ==== ")

   for _, value := range myArray {
      fmt.Println("value = ", value)
   }
}

slice

image-20220828161037655

package main

import "fmt"

func main() {
   //声明slice1是一个切片,并且初始化,默认值是1,2,3。 长度len是3
   //slice1 := []int{1, 2, 3}

   //声明slice1是一个切片,但是并没有给slice分配空间
   var slice1 []int
   //slice1 = make([]int, 3) //开辟3个空间 ,默认值是0

   //声明slice1是一个切片,同时给slice分配空间,3个空间,初始化值是0
   //var slice1 []int = make([]int, 3)

   //声明slice1是一个切片,同时给slice分配空间,3个空间,初始化值是0, 通过:=推导出slice是一个切片
   //slice1 := make([]int, 3)

   fmt.Printf("len = %d, slice = %v\n", len(slice1), slice1)

   //判断一个silce是否为0
   if slice1 == nil {
      fmt.Println("slice1 是一个空切片")
   } else {
      fmt.Println("slice1 是有空间的")
   }
}
package main

import "fmt"

func main() {
   var numbers = make([]int, 3, 5)

   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers), cap(numbers), numbers)

   //向numbers切片追加一个元素1, numbers len = 4, [0,0,0,1], cap = 5
   numbers = append(numbers, 1)

   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers), cap(numbers), numbers)

   //向numbers切片追加一个元素2, numbers len = 5, [0,0,0,1,2], cap = 5
   numbers = append(numbers, 2)

   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers), cap(numbers), numbers)

   //向一个容量cap已经满的slice 追加元素,
   numbers = append(numbers, 3)

   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers), cap(numbers), numbers)

   fmt.Println("-=-------")
   var numbers2 = make([]int, 3)
   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers2), cap(numbers2), numbers2)
   numbers2 = append(numbers2, 1)
   fmt.Printf("len = %d, cap = %d, slice = %v\n", len(numbers2), cap(numbers2), numbers2)
}

截取

package main

import "fmt"

func main() {
   s := []int{1, 2, 3} //len = 3, cap = 3, [1,2,3]

   //[0, 2)
   s1 := s[0:2] // [1, 2]
   //s2:=s1[0:1]
   fmt.Println(s1)

   s1[0] = 100

   fmt.Println("----------")
   fmt.Println(s)
   fmt.Println("----------")
   fmt.Println(s1)

   //copy 可以将底层数组的slice一起进行拷贝
   s2 := make([]int, 3) //s2 = [0,0,0]

   //将s中的值 依次拷贝到s2中
   copy(s2, s)
   fmt.Println(s2)

}

标签:int,fmt,cap,len,切片,numbers,Println
From: https://www.cnblogs.com/suehoo/p/16633032.html

相关文章

  • python3 函数 定义函数与切片
     如果我们要计算一个圆的面积,就是3.14*r*r,如果每次就算,则每次都要写一遍,就很麻烦,所以有了函数,我们就可以通过调用函数的方法,直接使用就行了。 这里我们可以访问 ......
  • Go语言 字符串切片转字符串
    []btye可以直接转换成string,但是如果有使用到split函数的需求,然后再str:=string([]string{}),go不支持这样的强转.参考博客:Golang字符切片转字符串不过go的......
  • Python列表切片的特殊妙用
    假如,我们拥有一个如下列表:>>>nums=[iforiinrange(10)]>>>nums[0,1,2,3,4,5,6,7,8,9]我们此时通过切片获取列表的前三个值>>>nums[:3][0,1,2]......
  • 一文读懂网络切片
    在各种新兴业务不断涌现的今天,现有的4GLTE网络已经无法满足日益增多的业务需求,因此未来的网络需要通过网络切片技术从“onesizefitsall”向“onesizeperservice”过......
  • python基础语法获取列表中的多个元素_切片操作
    list=[10,20,30,40,50,60,70,80]print(list[6:0:-2])print(list[6:0:-1])print(list[6:0:-1])print(list[1:6:1])E:\PycharmProjects\pythonProject\venv\Scripts......
  • numpy切片X[:,0]和X[:,1]
    1.X[:,0]是numpy中数组的一种写法,表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据,直观来说,X[:,0]就是取所有行的第0个数据,X[:,1]就是取所有行的......
  • Six---pytorch学习---索引与切片
    pytorch学习(3)索引与切片普通索引冒号索引(切片)index_select选择特定索引masked_select选择符合条件的索引take索引普通索引index(有负索引)importtorcha......