首页 > 其他分享 >Go 语言切片(Slice)

Go 语言切片(Slice)

时间:2023-08-14 20:12:04浏览次数:30  
标签:Slice printSlice int fmt len 切片 numbers Go

切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

定义

var identifier []type

var slice1 []type = make([]type, len)

slice1 := make([]type, len)

make([]T, length, capacity)

len() 和 cap() 函数

package main

import "fmt"

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

printSlice(numbers)
}

func printSlice(x []int){
fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

空(nil)切片

package main

import "fmt"

func main() {
var numbers []int

printSlice(numbers)

if(numbers == nil){
fmt.Printf("切片是空的")
}
}

func printSlice(x []int){
fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

 

切片截取

package main

import "fmt"

func main() {
/* 创建切片 */
numbers := []int{0,1,2,3,4,5,6,7,8}
printSlice(numbers)

/* 打印原始切片 */
fmt.Println("numbers ==", numbers)

/* 打印子切片从索引1(包含) 到索引4(不包含)*/
fmt.Println("numbers[1:4] ==", numbers[1:4])

/* 默认下限为 0*/
fmt.Println("numbers[:3] ==", numbers[:3])

/* 默认上限为 len(s)*/
fmt.Println("numbers[4:] ==", numbers[4:])

numbers1 := make([]int,0,5)
printSlice(numbers1)

/* 打印子切片从索引 0(包含) 到索引 2(不包含) */
number2 := numbers[:2]
printSlice(number2)

/* 打印子切片从索引 2(包含) 到索引 5(不包含) */
number3 := numbers[2:5]
printSlice(number3)

}

func printSlice(x []int){
fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

append() 和 copy() 函数

package main

import "fmt"

func main() {
var numbers []int
printSlice(numbers)

/* 允许追加空切片 */
numbers = append(numbers, 0)
printSlice(numbers)

/* 向切片添加一个元素 */
numbers = append(numbers, 1)
printSlice(numbers)

/* 同时添加多个元素 */
numbers = append(numbers, 2,3,4)
printSlice(numbers)

/* 创建切片 numbers1 是之前切片的两倍容量*/
numbers1 := make([]int, len(numbers), (cap(numbers))*2)

/* 拷贝 numbers 的内容到 numbers1 */
copy(numbers1,numbers)
printSlice(numbers1)
}

func printSlice(x []int){
fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x)
}

标签:Slice,printSlice,int,fmt,len,切片,numbers,Go
From: https://www.cnblogs.com/fczlm/p/17629614.html

相关文章

  • 2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符
    2023-08-14:用go语言写算法。给出两个长度相同的字符串str1和str2,请你帮忙判断字符串str1能不能在零次或多次转化后变成字符串str2,每一次转化时,你可以将str1中出现的所有相同字母变成其他任何小写英文字母,只有在字符串str1能够通过上述方式顺利转化为字符串......
  • 如何将Python代码转换为Goland
    本文将介绍如何将Python代码转换为Goland,包括转换工具、转换步骤和注意事项。1.转换工具目前市面上有很多Python到Go的转换工具,例如:Transcrypt:一个命令行工具,可以将Python代码转换为Go代码。PyGo:一个Python库,可以在Python代码中嵌入Go代码,从而实现Python到Go的转换。GoPy:一个Pytho......
  • 2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符
    2023-08-14:用go语言写算法。给出两个长度相同的字符串str1和str2,请你帮忙判断字符串str1能不能在零次或多次转化后变成字符串str2,每一次转化时,你可以将str1中出现的所有相同字母变成其他任何小写英文字母,只有在字符串str1能够通过上述方式顺利转化为字符串str2......
  • 免费敏捷工具做敏捷缺陷跟踪管理-leangoo
    ​缺陷管理通常关注如下几个方面:1.缺陷的处理速度2.缺陷处理的状态3.缺陷的分布4.缺陷产生的原因使用Leangoo敏捷看板我们可以对缺陷进行可视化的管理,方便我们对缺陷的处理进展、负责人、当前状态、分布情况等各个方面一目了然。我们可以通过Leangoo领歌敏捷工具来管理......
  • Go 语言结构体
    结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。定义结构体结构体定义需要使用type和struct语句。struct语句定义一个新的数据类型,结构体中有一个或多个成员。type语句设定了结构体的名称typestruct_variable_typestruct{memberdefinitionmembe......
  • Golang之旅——Defer
    defer首先来看一下官方的解析:Adeferredfunction’sargumentsareevaluatedwhenthedeferstatementisevaluated.DeferredfunctioncallsareexecutedinLastInFirstOutorderafterthesurroundingfunctionreturns.Deferredfunctionsmayreadandassign......
  • 突然让做性能测试?试试RunnerGo
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试,怎么样去深入性能测试。突然让做性能测试怎么办?日常工作中,项目改造或项......
  • Go 语言指针
    变量是一种使用方便的占位符,用于引用计算机内存地址。Go语言的取地址符是&,放到一个变量前使用就会返回相应变量的内存地址。packagemainimport"fmt"funcmain(){varaint=10fmt.Printf("变量的地址:%x\n",&a)}什么是指针一个指针变量可以指向任何一个......
  • 突然让做性能测试?试试RunnerGo
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试,怎么样去深入性能测试。突然让做性能测试怎么办?日常工作中,项目改造......
  • RunnerGo的相比较JMeter优势,能不能替代?
    目前在性能测试领域市场jmeter占有率是非常高的,主要原因是相对比其他性能测试工具使用更简单(开源、易扩展),功能更强大(满足多种协议的接口),但是随着研发协同的升级,平台化的性能测试工具更能高效的基于团队开展协作,比如我们今天要说的开源测试平台RunnerGo。 性能测试工具平台化优......