`

golang的数组和切片

    博客分类:
  • Go
 
阅读更多
//定义变量的两种方式:
//1.var 变量名 变量类型 = 变量值
var a int = 3
var a=3  //类型推导的方式
//短变量声明法,只能声明局部变量, 不能声明全局变量:
//2.变量名 := 变量值
_ a := 3


//变量声明后没有赋值,默认为空

//一次定义多个变量
//
var a, b, c string
var (
    a string
    b int
)

//const A = "AAA"  常量定义完后值不能再变
//A = "BBB"

 

 

package main
import "fmt"



func main() {
    fmt.Println("abcd", 3)

    //数组的长度也是类型的一部分
    var arr1_ [3]int
    fmt.Println(arr1_)

    arr2 := [...]int{1,2}
    fmt.Println(arr2)
    for i:=0;i<len(arr2);i++{
        fmt.Println(i)
    }
    for key, val := range(arr2){
        fmt.Println(key)
        fmt.Println(val)
    }
    //声明切片,不指定数组的长度就是声明切片
    var strSlice =[]string{"golang", "python", "java"}
    fmt.Println(strSlice)
    //切片的遍历
    for i:=0;i<len(strSlice);i++{
        fmt.Println(strSlice[i])
    }

    for k,v := range strSlice{
        fmt.Println(k, v)
    }
    //基于数据定义切片

    arr1 := [3]int{1, 2, 3}
    b:=arr1[:] //获取数组里所有元素
    fmt.Printf("%v---%T", b, b)
    c:= arr1[1:2]
    fmt.Printf("%v---%T", c, c)
    d:=arr1[1:]
    fmt.Printf("%v---%T", d, d)
    e:=arr1[:1]
    fmt.Printf("%v---%T", e, e)

    //基于切片定义切片
    intSlict := []int{1,2, 3,4,5}
    f := intSlict[1:]
    fmt.Printf("%v---%T\n", f, f)

    //关于切片的长度和容量
    //长度:切片的长度就是切片中元素的个数
    //容量:切片的容量是从它的第一个元素开始数, 到其底层数组末尾元素的个数
    //切片的本质其实是对底层数组的封装,它包含三个元素,指向底层数组的指针,切片的长度和切片的容量
    fmt.Printf("长度%d---容量%d", len(intSlict), cap(intSlict))

    g:=intSlict[2:3]
    fmt.Printf("长度%d---容量%d", len(g), cap(g)) //长度1   容量是3

}

 

分享到:
评论

相关推荐

    深入理解Go语言中的数组和切片

    切片是引用类型,切片包装的数组称为该切片的底层数组。 我们来看一段代码 //a是一个数组,注意数组是一个固定长度的,初始化时候必须要指定长度,不指定长度的话就是切片了 a := [3]int{1, 2, 3} //b是数组,是a...

    Golang数组的传递详解

    总的来说,理解Golang中的数组和切片以及它们在函数参数传递中的行为是编写高效代码的关键。在处理大数组时,应优先考虑使用切片或指针来避免不必要的性能开销。此外,掌握按值传递和按引用传递的概念有助于更好地...

    Golang算法问题之数组按指定规则排序的方法分析

    ### Golang算法问题之数组按指定规则排序的方法分析 #### 背景介绍 在处理数据结构时,经常需要对数组或列表中的元素按照特定的规则进行排序。本篇文章将探讨如何在Go语言中实现这样的功能,即对于一个多维数组...

    go语言通过数组和链表的方式实现队列 数组和链表.pdf

    5.队列的实现细节:在数组实现中,使用append函数来实现元素的添加,使用切片索引来实现元素的删除。在链表实现中,使用节点之间的指针来实现元素的添加和删除。 6.队列的时间复杂度分析:数组实现中,Offer操作的...

    GO语言数组和切片实例详解

    本文实例讲述了GO语言数组和切片的用法。分享给大家供大家参考。具体分析如下: 一、数组  与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列。 (1)数组的创建。 数组有3种创建方式:[length]...

    pools:Golang 对象和切片池

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

    go代码-golang一维数组

    在Go语言中,一维数组是一种基础的数据结构,它存储同一类型的数据集合。本文将深入探讨Go语言中一维数组的定义、初始化、操作以及与其他数据结构的转换。...了解并熟练掌握数组和切片,对于编写高效的Go代码至关重要。

    Golang mk教程-Go语言视频零基础入门到精通项目实战web编程

    第04天-基础-闭包、数组、切片、锁机制 第05天-进阶-排序、链表、二叉树、接口 第06天-进阶-接口与反射详解 第07天-进阶-接口实例、终端文件读写、异常处理 第08天-进阶-goroute详解、定时器与单元测试 第09天-高级-...

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

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

    golang 每日一题_220实用知识库分享

    range循环是Go语言中的一个特殊循环,用于遍历数组、切片和map等数据结构。 9. 二叉树的遍历 二叉树是一种常见的数据结构,在Go语言中可以通过递归和迭代两种方式来遍历。 10. 字符串的使用 字符串是Go语言中的...

    Go语言深度探索:切片与数组的奥秘

    ### Go语言深度探索:切片与数组的奥秘 ...以上内容不仅限于理论知识,还包括了实际操作的代码示例,希望能帮助读者更好地理解和掌握Go语言中的数组和切片。如果你在实际应用中有任何疑问或需要帮助,请随时咨询。

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

    Go语言提供了多种数据结构,其中数组和切片是处理序列化数据的两种基本类型。数组是一个固定长度的序列,而切片则是一种可以动态调整大小的序列。 在Go中,切片是对数组的抽象和封装。切片是一个引用类型,它提供了...

    Golang排列组合算法问题之全排列实现方法

    在Golang中实现全排列算法主要是为了解决排列组合问题,特别是在处理字符串或数组时,例如在上述例子中,需要对一组数字进行字典序排序并输出所有可能的排列。全排列算法是找出一个序列中所有可能的排列方式,且每个...

    golang小知识总结.docx

    本文总结了Go语言的多个小知识点,涵盖了new()与make()的区别、变量声明和赋值、结构体的比较、结构体嵌套、nil赋值、init函数、类型选择和数组、切片操作符等方面。 1. new()与make()的区别:new()函数用于分配...

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

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

    golang学习路线总结

    Golang的内置容器包括数组、切片、map等。 * 数组:数组是一种固定长度的集合,用于存储相同类型的元素。 * 切片:切片是一种动态数组,用于存储相同类型的元素。 * map:map是一种键值对的集合,用于存储键值对...

    golang切片内存应用技巧详解

    切片底层引用一个数组对象,包含指针、长度和容量三个部分。指针指向切片第一个元素对应的底层数组元素的内存地址,长度表示切片中元素的数量,而容量则表示从切片的开始位置到底层数组的边界之间有多少元素。 切片...

    浅谈golang slice 切片原理

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

Global site tag (gtag.js) - Google Analytics