前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go(3[数组])

Go(3[数组])

作者头像
py3study
发布2020-01-09 16:35:40
3540
发布2020-01-09 16:35:40
举报
文章被收录于专栏:python3

数组:var 变量名[len]type

使用场景:

  • 固定需求的时候,使用数组,不可超出指定长度
  • 长度也是数组类型的一部分
  • 底层内存空间是连续的
  • 用来存储常量
  • 数组是一种特殊的字典.....
  • 数组写入,赋值的方式, 数组[索引]=值
  • 数组是值类型,如果copy成另外一个数组,那修改这个数组,原来的数组并不会改变

数组初始化:

    定义:    var 变量名 [len]type

  • 第一种: 
    • var a[5] int = [5]int{1,2,3,4,5}
  • 第二种:
    • ceshi :=[5]int{1,3,4,5}
  • 第三种
    • var b = [5]int{1,3}
  • 第四种(当不可知长度的时候使用 ...),需要注意的是在切片中也有这种用法,不过含义不一样
    • var c = [...]int{1,3,4,5,10}

示例:

代码语言:javascript
复制
var a[5]int

var a[5]string

var a[5]float32

var a[5]bool

访问数组中的元素:

  使用下标访问: a[0]访问第一个元素。长度为5的数组访问如下: a[0], a[1], a[2], a[3], a[4]

数组中的长度:

    var a[10]int

    lengh :=len(a)

示例代码拆分部分:

  1. 数组循环:
    1. 格式化%p,用来打印内存地址
    2. & 符号,取变量地址
    3. 尽量用变量来循环
    4. var a [10]int for i :=0;i<len(a);i++{    fmt.Printf("%p\n",&a[i]) }
    5. length:=len(a) 数组长度
  2. 数组初始化:
    1. 定义数组的时候,默认值都是0
    2. 产生另外一个数组,修改这个数组,并不会对原数组进行修改
    3. func test2()  {    var a[5]int  = [5]int {1,2,3,4,5}    var b[5] int    b = a    fmt.Printf("%v\n",b)    b[0] = 200    fmt.Printf("%v\n",b)    fmt.Printf("%v\n",a) }
  3. 数组定义:
    1. 声明数组的时候,需要定义长度和类型!!!
      1. 写法:变量[长度]类型 = [长度]类型[值]
    2. 数组赋值:指定下标来指定元素赋值
    3. %#以go的方式打印
    4. var d [5]string = [5]string{1:"abc",4:"zcq"} //%#  以go的方式打印!!! fmt.Printf("%#%v\n",d) fmt.Printf("%v\n",a,b,c)
  4. 二维数组
    1. var a[8][2]int
    2. func test4()  {    //二维数组    var a[4][2]int    for i:=0;i<4;i++{       for j:=0;i<2;j++{          a[i][i] = (i+1) *(j+1)       }    }    for i:=0;i<4;i++{       for j:=0;i<2;j++{          fmt.Printf("%d",a[i][j])       }       fmt.Println()    } }
  5. 数组赋值:随机数字放入数组
    1. 切记:go是强类型语言,所以类型如果不一样,是编译不过去的
    2. 使用随机数模块,使用time模块
      1. r := rand.New(rand.NewSource(time.Now().Unix())
    3. func test5()  {    //随机数字放入数组    r := rand.New(rand.NewSource(time.Now().Unix()))    var five [100]int    //数组 通过索引来赋值    for i:=0;i<len(five);i++{       //赋值操作       five[i]=r.Int()       //取值操作       fmt.Printf("%d\n",five[i])    }    fmt.Printf("%d\n",five) }
  6. 数组赋值:随机字符串放入数组
    1. go里面是utf-8编码
    2. Sprintf 格式化并返回格式化后的字符串,可直接赋值!!!
    3. func test6()  {        var a [100]string    var b string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"    for i:=0;i<len(a);i++{       var str string       for j:=0;j<len(b);j++{          index :=rand.Intn(len(b))          //Sprintf 格式化并返回格式化后的字符串          str = fmt.Sprintf("%s%c",str,b[index])       }       a[i] = str       fmt.Printf("a[%d]=%s\n",i,a[i])    } }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档