`

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...

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

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

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

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

    浅谈golang slice 切片原理

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

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

    数组 代码如下: package main import (  “fmt” ) func main() {  arr := […]int{1, 2, 3}  //打印初始的指针  fmt.Printf(“the pointer is : %p \n”, &arr)  printPointer(arr) } func printPointer(any ...

    Go语言入门指南大纲及框架建议:轻松掌握Go语言学习秘诀.docx

    Go语言入门指南大纲及框架建议:轻松掌握Go语言学习秘诀 1. Go语言概述  Go语言的历史和创造者  Go语言的主要特性和优势  Go语言的应用领域 2. 安装与配置  在不同操作系统(Windows, ... 数组与切片的转

    golang切片内存应用技巧详解

    利用切片 的这个特性我们可以在原有内存空间中对切片进行反转、筛选和去重等操作,这样就不用声明一个指向新内存的切片来存储结果,从而节省了内存空间以及扩展底层数组的消耗,这在切片长度足够大时效果就会

    Golang2-new.docx

    4.2.6. 切片的长度和容量 60 4.2.7. 追加切片元素 62 4.2.8. 切片的函数传递 65 4.2.9. 多维切片 66 4.2.10. 内存优化 67 4.2.11. nil slice和empty slice 69 4.2.12. For range 70 4.3. 结构 71 4.3.1. ...

    Golang(语言)教程

    数组,切片和映射 Golang教程–类型转换 条件语句 if else switch case 循环 指针 函数 可变函数 方法,结构和接口 Struct 方法 Interface 包 安装包 创建一个自定义包 包文件 Go中的一些内置软件包 错误处理 从函数...

    使用golang进行高性能编码-Golang开发

    数组和切片 基础入门 Go 语言简明教程 Go Test 单元测试简明教程 Go Protobuf 简明教程 Go RPC & TLS 鉴权简明教程 Go Mock (gomock)简明教程 Go Mmap 文件内存映射简明教程 Go Context 并发编程简明教程 Go ...

    大家一起学Golang——结构体、方法

    在go中数组切片只能存储同一类型的数据,但结构体用户可以自定义将不同数据类型进行组合。 type Student struct{ name string age int } 初始化: st := Student{ name: “Jeff”, age: 18, } 初始化时要换行,每一...

    1010class:1010课程脑图

    golang 基础1010编程前瞻视频(什么是...脑图:第四章:golang的流程控制语句(1010工作室出品)视频:脑图:第五章:golang的数组和切片(1010工作室出品)视频:https://www.bilibili.com/video/BV1P5411t7Wr脑图(数组):...

    Golang 面试题汇编

    字符串转成byte数组,会发生内存拷贝吗? http包的内存泄漏 sync.Map 的用法 Golang 理论 Go语言的GPM调度器是什么? Goroutine调度策略 goroutine调度器概述 Redis基础 Redis 基础数据结构 Redis中的底层数据结构 ...

    msgpack:适用于Golang的更轻松,更快但可扩展的MessagePack序列化器。 msgpack.org [开始]

    原始/数组/切片/结构/映射/接口{}和time.Time 通过msgpack:"field_name"重命名字段msgpack:"field_name" 通过msgpack:"-"省略字段msgpack:"-" 支持扩展编码器/解码器也可以将结构编码/解码为数组此软件包要求的内容...

    golang面试题集合.zip

    字符串转成byte数组,会发生内存拷贝吗? http包的内存泄漏 sync.Map 的用法 Golang 理论 Go语言的GPM调度器是什么? Goroutine调度策略 goroutine调度器概述 Redis基础 Redis 基础数据结构 Redis中的底层数据结构 ...

    golang-hands-on

    :数组/切片迭代 :切片修改 :结构定义 :结构构造器和方法 :关闭 :Goroutine-基础 :无缓冲通道 :缓冲通道 :整理-无需订购 :第一个Web服务器 :带有goji的高级路由器 :json编组 第16部分:错误处理,高级 第...

    Go语言中的复合类型详细介绍

    golang复合类型包括:结构体、数组、切片、Maps。 1、数组 数组 golang中的数组与C语言中的数组差异很大,倒更类似Pascal中的数组。 (Slice,下个话题,有些像C语言中的数组) 代码如下: var ar [3]int 声明ar为一...

    golang:学习golang

    高朗 Este repositório destina-se ao registro de revisões e estudos pessoais utilizando a linguagem GO.... 数组,切片和地图[x] 功能[x] 可变参数函数[x] 闭包[x] 递归[x] 推迟,恐慌和恢复

    goA-Z:一个学习golang的小项目

    Go-B-运算符,用于循环,If-Else,切换Go-C-数组,切片,地图。 Go-D-函数,闭包。 Go-E-延迟,恢复,死机,错误Go-F-指针Go-G-结构,界面,方法Go-H-排序Go-I-文件I / O,创建,打开,写入,阅读Go-J-随机数,数字...

Global site tag (gtag.js) - Google Analytics