`

golang的切片

    博客分类:
  • Go
 
阅读更多
package main

import (
	"fmt"
)


func main() {

	//make函数创建切片  make([]T, size, cap)

	slice := make([]int, 4, 8)
	fmt.Println(slice)
	fmt.Printf("%d----%d\n", len(slice),cap(slice))
    //切片的修改
	slice[1]=10
	slice[2]=30
	fmt.Println(slice)

	//golang中只能通过append方法来给切片扩容
	sliceA := []int{}
	fmt.Println(sliceA)
	sliceA  = append(sliceA, 12,13,14)
	fmt.Println(sliceA)

	//append方法可以合并两个切片
	sliceC:= []string{"java", "go"}
	sliceB:=[]string{"python","php"}
    //把sliceB合并到sliceC
	sliceC = append(sliceC, sliceB...) //[java go python php]
	fmt.Println(sliceC)


	//值类型:改变变量副本值的时候,不会改变原始变量的值
	//引用类型:改变变量值的时候,会改变原始变量的值
	//切片就是引用类型

	a:=[]int{1,2,3,4}
	b:=a
	b[0]=12

	fmt.Println(a) //[12 2 3 4]
	fmt.Println(b) //[12 2 3 4]


	//copy函数复制切片

	c:=[]int{1,2,3,4}
	d:=make([]int, 4, 4)
	copy(d, c)
	fmt.Println(c)   //[1 2 3 4]
	fmt.Println(d)   //[1 2 3 4]

	d[0]=12
	fmt.Println(c)   //[1 2 3 4]
	fmt.Println(d)   //[12 2 3 4]

	//golang中没有删除切片元素的方法, 利用切片本身的特性来删除元素

	s :=[]int{1,2,3,4,5,6,7}
	//删除索引为2的元素即值时3的元素,注意append元素的第二个参数的三个点
	s = append(s[:2],s[3:]...)

	fmt.Println(s)  //[1 2 4 5 6 7]


	//golong中的字符串没法修改,可以转化成字符数组,或者rune数组来修改

	p:="string"

	byteArr := []byte(p)

	byteArr[0]='a'
	fmt.Println(string(byteArr))//atring


	runeArr := []rune(p)
	runeArr[0]='l'
	fmt.Println(runeArr)  //[108 116 114 105 110 103]
	fmt.Println(string(runeArr))  //ltring



}

 

分享到:
评论

相关推荐

    golang 切片工具类

    ChangeInterfaceToSlice 将 []interface{} 类型的切片转换成指定类型的切片 ChangeSliceToInterface 将任意切片类型的切片 转换为 []interface{} 类型 Contains 方法可以检查给定的切片中是否存在某个元素 ...

    golang切片内存应用技巧详解

    在Go语言中,切片是一种非常重要的数据结构,它是一个动态数组,可以用来存放一系列同类型的数据。切片底层引用一个数组对象,包含...对于想要深入学习和掌握Golang切片使用的开发者而言,理解这些技巧是非常必要的。

    Golang切片与数组:内在差异的深度解析

    Golang,通常被称为Go语言,是一种由谷歌开发的编程语言。它以简洁、高效、安全著称,并且非常适合构建大规模的分布式系统和微服务。Go语言的一些主要特点包括: 1. **简洁性**:Go语言的语法非常简单,易于学习。 ...

    Golang slice切片操作之切片的追加、删除、插入等

    本文介绍了Golang slice切片操作之切片的追加、删除、插入等,分享给大家,具体如下: 一、一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%...

    golang常用手册之切片(Slice)原理

    在Golang中,切片(Slice)是一种非常重要的数据结构,它是对数组的抽象,提供了更灵活的操作方式。切片的灵活性体现在数组长度不固定、可追加元素、容量可增大以及容量大小按需成倍增加等特性。下面将详细探讨切片...

    pools:Golang 对象和切片池

    在 Golang 中,"pools" 是一个重要的概念,它主要指的是对象池和切片池。这些池化机制被广泛用于提高程序性能,通过复用已经分配的内存资源,避免频繁地申请和释放内存,从而减少垃圾回收的压力。本文将详细讲解 ...

    浅谈golang slice 切片原理

    slice介绍 数组的长度在定义之后无法再次修改;...初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数

    Golang实现字符串倒序的几种解决方案

    在Golang中,字符串倒序是一个常见的操作,尤其在处理文本数据时。本文将探讨三种不同的方法来实现字符串倒序,特别关注如何处理包含中文字符的情况。这些解决方案将基于Go语言的特性,如切片(slice)和字符类型...

    理解Golang中的数组(array)、切片(slice)和map

    我比较喜欢先给出代码,然后得出结论 数组 代码如下: package main import (  “fmt” ) func main() {  arr := […]int{1, 2, 3}  //打印初始的指针  fmt.Printf(“the pointer is : %p \n”, &arr) ...

    实例学习Golang–结构体

    package main import fmt // 定义结构体 type StudentMangement struct { name string id string addr string hobby []string } // 构造函数 一般以new开头 // 函数返回结构体指针,可以减少内存开销 ...

    Golang中切片的用法与本质详解

    Golang,简称Go,是一种静态类型、编译型语言,由Google开发。Go语言提供了多种数据结构,其中数组和切片是处理序列化数据的两种基本类型。数组是一个固定长度的序列,而切片则是一种可以动态调整大小的序列。 在Go...

    slice:C语言中类似go的切片的库

    Go切片启发式的库,可在C语言中轻松进行内存安全的切片操作。 介绍 我是C语言的忠实粉丝,但我不禁为Go的切面而深深吸引。 它们自动管理缓冲区容量以及数组的开始和结束,因此您在使用内存时不必考虑内存。 这是C...

    golang中文手册_golang中文手册_goapiCHM_golang中文手册.chm_

    Go语言,又称Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它设计的目标是提高开发者的生产效率,同时保持系统级编程的性能。Go语言的设计受到了C、 Pascal、 Miranda和...

    Golang开发培训知识图谱

    2. **高级特性**:Golang提供了一些高级语言特性,例如指针、数组、切片(slice)、Map、结构体(struct)等。切片提供了动态数组的功能,而Map是一种无序的键值对集合。结构体用于封装多个值,并能够创建方法实现...

    web无插件播放rtsp流和配套golang 的rtsp转码服务

    Golang程序(可能就是goRtsp.exe)作为一个中间层,它接收RTSP流,对视频流进行处理(例如,转码、切片),然后提供一个Web友好的格式,如HLS,使Web前端可以轻松地通过AJAX或Fetch API请求并播放这些流。...

    Golang细节底层挖掘.pdf

    在Golang语言中,`nil`是一个非常关键的概念,它涉及到多个类型家族的零值,包括指针、切片、映射(map)、通道(channel)、函数和接口(interface)。理解`nil`的含义和使用方式是深入学习Golang的重要环节。 ...

    Golang精编100题

    调用方式可以是`add(1, 2)`、`add(1, 3, 7)`,或者传递一个整数切片如`add([]int{1, 2, 3}...)`。`add([]int{1, 2})`不正确,因为缺少省略号`...`。 10. **类型转化**:定义新类型`MyInt`后,将`int`转化为`MyInt`...

Global site tag (gtag.js) - Google Analytics